Хорошо, хорошо, помимо прочего, у вашего кода есть эта проблема:
Я закомментировал биты, которых у нас еще не было, и этосработало:
public static void main(String[] args) {
int scr = score();
// questionOne();
// questionOneAnswer();
System.out.println("Your score is " + scr);
System.exit(0);
}
Не знаю, почему вы вызываете questionOneAnswer ();во второй раз (один раз внутри счета - где вы присваиваете значение временной переменной) и еще раз в главном, где вы даже не присваиваете логическое значение, возвращаемое чему-либо.
public static int score() {
boolean qOneCheck = questionOneAnswer();
int currentScore = 0;
int oldScore = 0;
int newScore = 0;
// int random = randomGen();
if (qOneCheck == true) {
// currentScore = currentScore + random;
currentScore = currentScore + 1;
newScore = currentScore;
} else {
currentScore = oldScore;
newScore = currentScore;
}
return newScore;
}
Большая часть этогомусор.Каждый раз, когда вы вызываете Score (), текущий, старый и новый все устанавливаются на 0.
Что-то вроде:
static int runningTotal = 0;
public static int score() {
if (questionOneAnswer()) runningTotal++;
}
Или убить двух зайцев одним выстрелом:
public static void main(String[] args) {
score();
System.out.println("Your score is " + scr);
System.exit(0);
}
static int scr = 0;
public static int score() {
if (questionOneAnswer()) scr++;
}
Также по умолчанию в questionOneAnswer ();не должно быть истиной, это должно быть ложью, тогда вы можете исправить проблему, с которой я столкнулся (фиктивный ввод будет ложным).Но даже более того, мы можем свести метод к минимуму:
public static boolean questionOneAnswer() {
String i = input();
return i.equalsIgnoreCase("B");
}
Я не смотрел на метод ввода.
TLDR: закомментировал две лишние строки в основном методеи что бы это ни было, что думает случайный человек, похоже, это решило проблему.