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が重複しているはずですか?彼が「スキャナ」を使用しているのは重複していないので、論理エラーがあり、System.inからのスキャンには本当に関連していませんでした - 間違ったラインがスキャナを使用したばかりですが、問題自体はスキャナ。 – luk2302