Я инициировал переменную 'answer' в ближайшем заголовке класса. Позже, когда случайное число в пределах введенного диапазона было сгенерировано, эта же переменная получает новое другое значение (из-за генератора случайных чисел). Но, как вы можете видеть, переменная 'answer' указывается в двух разных цветах (синий против светло-коричневого), и, как вы ожидаете, мои подпрограммы, следовательно, не работают. Почему-то ответ не равен ответу. Что я сделал неправильно ???? (к сожалению, здесь вы не видите разницы в цветах).
- В затмении цвет «ответа» в самом верху
static int answer = 0;
- СИНИЙ. - Но один
int answer = ThreadLocalRandom.current().nextInt(1, userinput);
- СЕРЫЙ
Вот мой код:
package Package1;
import java.util.concurrent.ThreadLocalRandom;
import java.util.Scanner;
public class test6KOPIE
{
static int numberofattempts = 0;
static int maxnummerofattemptsallowed = 5;
static int answer = 0;
public static void main(String[] args)
{
if (answer == 0)
{
Scanner maxinput = new Scanner(System.in);
System.out.println("Under which number do you want to guess");
int userinput = maxinput.nextInt();
int answer = ThreadLocalRandom.current().nextInt(1, userinput);
System.out.println(answer);
main(args);
}
else if (numberofattempts < maxnummerofattemptsallowed)
{
Scanner higherlower = new Scanner(System.in);
System.out.println("Higher or Lower");
int digit = higherlower.nextInt();
if (answer == digit)
{
System.out.println("very well");
}
else {
if (answer > digit )
{
++numberofattempts;
System.out.println("Higher, you have " +(maxnummerofattemptsallowed - numberofattempts)+" attempt(s) left)");
System.out.println(numberofattempts);
main(args);
}
else
{
++numberofattempts;
System.out.println("Lower, you have " +(maxnummerofattemptsallowed - numberofattempts)+" attempt(s) left)");
main(args);
}
}
higherlower.close();
}
else {
System.out.println("Maximum number of attempts used, the answer was" +answer);
}
}