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"
時,遊戲會繼續滾動骰子。我也希望它停止遊戲並在用戶輸入"n"
或"N"
時說"Closing"
。我的while循環不會停下來休息一下嗎?
問題是,當用戶輸入"n"
或"N"
時,它將打印出"Closing"
,但循環不停止,遊戲將再次擲骰子。當用戶輸入"n"
或"N"
時如何讓我的while()循環停止?
這裏的輸出,當用戶選擇停止遊戲("n" or "N")
:請問
you like to retry?(Y or N) : n
Closing
Rolling...
You rolled : 1 & 4
Sum = 5
You win
我對這樣基本的問題,對不起,我是新來編程。
快速編輯:如果用戶在第一次「重試?」時輸入「n」或「N」,遊戲將關閉。但是如果他輸入「y」或「Y」然後選擇停止遊戲,循環將繼續。 – Crypto
這應該是一個重複的@JarrodRoberson?僅僅因爲他使用'Scanner',它不是重複的,他有一個邏輯錯誤,沒有任何真正與從System.in掃描相關的 - 錯位的行恰好使用掃描器,但問題本身與掃描器完全無關。 – luk2302