2017-09-29 5 views
0

したがって、ユーザーがYesまたはNoを入力したかどうかを検証し、入力するまで尋ね続けます。これはこれまでの私のコードです。ユーザーがYesまたはNoを入力したかどうかを検証しようとしています

System.out.println("Would you like a Diamond instead of a Pyramid? Type Yes or No");   
String input2 = scan.nextLine(); 
boolean d = input2.equals("Yes"); 
System.out.println(d); 

while ((d != false) || (d != true)) { 
    System.out.println("Invalid Input. Please try again"); 
    input2 = scan.nextLine(); 
    d = input2.equals("Yes"); 
    System.out.println(d); 
} 

どこが間違っていますか?私はjavaに新しいです。どんな助けでも大歓迎です。

編集:私は書くのが面倒です。私がしようとしているのは、このタイプのロジックです。 ピラミッドの代わりにダイヤモンドを使用するかどうかをユーザーに確認します。 a。ユーザーは「はい」または「いいえ」と入力する必要があります。 b。ユーザーがこれらのどちらも入力しない場合は、適切な入力が得られるまで再度質問してください。

+2

私はJavascriptタグを削除しています。 JavaとJavascriptは無関係の言語です。あなたの質問に間違っていることを含めることも良いです。症状はそのままです。あなたはあなたが望むものを記述し、コードをいくつか与えましたが、あなたは実際にその問題が何であるかを言わなかったのです。それは、 'd!= false || d!= true'は 'd'の2つの値のそれぞれについて評価します。 – yshavit

+0

私のプロダクトリーダーのように聞こえます:)。 "あなたはこれをすることができますか?"、私: "いいえ"、彼は: "入力が無効です。もう一度やり直してください" – patrik

答えて

2

あなたがいるd以来

while ((d != false) || (d != true)) 

で無限ループを持つ終わるさbooleantrueまたはfalseと上記の条件を満足する場合の両方にあるであろういずれかで更新された場合でも。代わりに、あなただけので、あなたのwhileループは、dはtrueになりますので、何に関係なく実行しようとしているtrueまたはfalseに同一視することができます

System.out.println("Would you like a Diamond instead of a Pyramid? Type Yes or No");   
String input2 = scan.nextLine(); 
boolean d = input2.equalsIgnoreCase("Yes") || input.equalsIgnoreCase("No"); // confirms if the user input is Yes/No or invalid other than that 
.... 
while (!d) { // d==false ' invalid user input 
    System.out.println("Invalid Input. Please try again"); 
    input2 = scan.nextLine(); 
    d = input2.equalsIgnoreCase("Yes") || input.equalsIgnoreCase("No"); 
    System.out.println(d); 
    // also printing a boolean would print either true or false base on your input; you migt want to perform some other action 
} // this would exit on user input "Yes" 
0

ブール値に変更することができますかそれはfalseになります。私は、ユーザーがあなたの条件の一つが偽で、それはなぜその動作していない罰金ですので、他のが真の型付けされた時はいつでもちょうどあなたの条件に

あなたが使用している
while (d != true) 
0

または(||)演算子をしたいと思います。 本当の値を要求するのを止めたい場合は、以下の条件を書いてください。

while(d != true) 
関連する問題