У меня проблема с этим методом. Во-первых, он продолжает говорить мне, что мне нужно добавить возврат, я добавляю возврат в if if check. Вторая проблема заключается в том, что просто не выполняется цикл. Когда я добавляю возврат после инструкции if else, чтобы просто проверить цикл (удаляет ошибку возврата добавления), он просто проходит через него один раз, независимо от того, что вводит пользователь. Мы ценим любые предложения.Do While while и if else оператор не работает правильно
public static boolean newGame() {
// char variables for the user input
char yes = 'y';
char no = 'n';
// Request for user input
Scanner userInput = new Scanner(System.in);
System.out.println("Are you ready to play? Press \"y\" for Yes and \"n\" for No.");
// converts userInput to a char
String userChoice = userInput.nextLine();
char userChar = userChoice.charAt(0);
do {
// determines if the game starts or not
if (userChar == yes) {
System.out.println("GREAT!! Let's play!");
return true;
} else if (userChar == no) {
System.out.println("Thanks for playing!!");
return false;
} else {
System.out.println("Please enter \"y\" or \"n\"");
}
} while (userChar != yes || userChar != no);
}
цикл бесконечен, поскольку userChar никогда не изменяется внутри цикла, также если вы делаете его логическим, вы ДОЛЖНЫ возвращать логическое значение. – ivan
Использовать .equals и && в условии, с || это всегда верно – Ctx
@Ctx '==' и '! =' будет работать здесь; значения - 'char'. – rgettman