誰かが私のためにこれを見ることができるかもしれないと思っていました。私はJavaで始まったばかりですが、これは私の最初のプロジェクトですが、私は理解できないような変なバグがあります。ループのないループ?
このメソッドは、ユーザーが入力した内容に応じて、trueまたはfalseを返すことになっています。それは動作します、唯一のことは、ユーザーに二度聞いています。それは入力を受け取りますが、もう一度質問し、2番目の入力に対する評価を行います。私はそれを何と呼ぶべきかは分かりませんが、誰かが何が起こっているのかを知ることができれば、本当に感謝します!
public static boolean yesOrNo(){
System.out.print("Would you like to roll again? Type 'y' for yes or 'n' for no: ");
char c = screen.next().trim().charAt(0);
if (c == 'y' || c == 'Y' || c == 'n' || c == 'N') {
switch (c) {
case 'y': return (true);
case 'Y': return (true);
case 'n': return (false);
case 'N': return (false);
}
}
else {
System.out.println("Invalid input, try again!!");
yesOrNo();
}
return (true);
}
編集:スキャナの入力は、私はちょうどクラス内のプログラムの先頭に持って
public static Scanner screen = new Scanner(System.in);
です。私が他の入力状況で問題を起こしているようには見えません。それは何も印刷しませんが、最初に文字を取得することを見てprintステートメントを置くことはできますが、入力を2回尋ねます。私はまた、その機能の呼び出しをそれ自身に変更しようとしました。
return(yesOrNo());
運がありません。再帰なしで関数を再度呼び出す方法はありますか?
「スクリーン」変数の定義を表示できますか?このコードは問題ありません。問題を見つけるためにyesOrNo()を呼び出す場所のように、もっと見る必要があります。 – SpacePrez
あなたはそれが2回尋ねると言いますが、最初に「いいえ、入力をやり直してください。 – SpacePrez
ここで再帰を使用しないでください。 –