if (sum < 6) {
System.out.println("You win");
System.out.println();
// Does the user want to retry?
System.out.print("Would you like to retry?(Y or N) : ");
String retry = input.nextLine();
while (true) {
// If they say y or Y, roll again
if (("y".equals(retry)) || ("Y".equals(retry))) {
roll();
// Check for anything other than y and Y
} else if (("n".equals(retry)) || ("N".equals(retry))) {
System.out.println("Closing");
break;
} else if (!("y".equals(retry)) || !("Y".equals(retry))) {
System.out.print("Invalid input. Would you like to retry?(Y or N) : ");
retry = input.nextLine();
System.out.println();
}
}
} else if (sum > 6) {
System.out.println("You lose");
System.out.println();
System.out.print("Would you like to retry?(Y or N) : ");
String retry = input.nextLine();
while (true) {
if (("y".equals(retry)) || ("Y".equals(retry))) {
roll();
} else if (("n".equals(retry)) || ("N".equals(retry))) {
System.out.println("Closing");
break;
} else if (!("y".equals(retry)) || !("Y".equals(retry))) {
System.out.print("Invalid input. Would you like to retry?(Y or N) : ");
retry = input.nextLine();
System.out.println();
}
}
}
我正在尝试制作一个骰子游戏,当用户输入 "y"
时,游戏将继续掷骰子。或"Y"
。我还希望它停止游戏并说 "Closing"
当用户输入"n"
时或"N"
.
问题是,当用户输入"n"
时或"N"
,它会打印出 "Closing"
但循环不会停止,游戏将再次掷骰子。当用户输入 "n"
时如何使 while() 循环停止或"N"
?
这是用户选择停止游戏时的输出 ("n" or "N")
: 会
you like to retry?(Y or N) : n
Closing
Rolling...
You rolled : 1 & 4
Sum = 5
You win
对于这么基本的问题,我很抱歉,我是编程新手。
最佳答案
将行 String retry = input.nextLine();
移至 while
循环(在两个 if 分支中)。目前,您读取一个输入,然后一遍又一遍地比较该不变的输入。
关于java - 我的 while 循环不会因中断而停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43969022/