私の推測ゲームは、ユーザーからの推測を5,10、または20回受け取り、コンピュータによって選択された乱数を推測しようとしています。私のコード内のすべては、コードがユーザーに5,10、または20の推測を要求するかどうかを尋ねるときに、ユーザーがオプションの1つではない15を入力すると、彼らの推測を求める。私は彼らがオプションの1つを入力することを確認するいくつかのタイプのバリデーションが必要です。私はプログラミングに慣れていないので、どこにどのように正しい方法でこれを含めるかわかりません。私はいくつかの異なる方法を試しましたが、すべての人にエラーが発生します。私が必要とするのは、ユーザーがオプションの1つではない番号を入力した場合、それらのオプションの1つを入力するまで、再度要求するだけです。誰かが私にこのことをどうやってやるべきかを教えてくれますかjavaでユーザー入力を検証していますか?
答えて
は、ループ内のユーザからの入力を取るようにあなたが何かを行うことができます。例:
System.out.print("How many guesses would you like? (5, 10, 20)");
do {
int numberOfGuesses = scan.nextInt();
//on correct guess, break out of the loop
if(numberOfGuesses == 5 || numberOfGuesses == 10 || numberOfGuesses == 20)
break;
System.out.print("Please enter a guess having one of these values (5, 10, 20)");
} while (true);
ユーザが3つの値のいずれかを入力しない限り、正しい推測値を入力するように求められます。
まずはif (answer.length() ==3)
は意味がありません。 はたぶん、あなたは意味:
if(answer.equals("yes"))
を加えて、あなたは私が有効な推測番号を含むSet
を使用したいものを達成するために。 if
句で複数の値をチェックするよりもスケーラビリティがあり、はるかに理にかなっています。
Set<Integer> validNumberOfGuesses = new HashSet<Integer>(Arrays.asList(5, 10, 20));
int numberOfGuesses = scan.nextInt();
while (!validNumberOfGuesses.contains(numberOfGuesses)) {
/* ask again */
System.out.println(numberOfGuesses + " is not a valid number of guesses, please try again");
numberOfGuesses = scan.nextInt();
}
Javaが実行したときの電流ループの先頭にジャンプcontinue
キーワードがあります。それは次のようになります。ドキュメントThe Continue Statementを参照してください。
あなたはユーザー入力をしたら
if (numberOfGuesses != 5 && numberOfGuesses != 10 && numberOfGuesses != 20) {
continue; // jumps to start of while loop block, without running conditional
}
「numberOfGuesses」を受け取ったら、移動する前にその番号の値を確認する必要があります。それ以外の場合は、実際に番号を検証しないため、コード内を移動するだけです。
ブール値を返す関数を作成してそこの数値を確認するとよいでしょう。あなたには、いくつかの比較と検証を実行したい機能に
boolean isValidOption(int number)
。あなたは3つのオプションを持っているので、あなたは多くの方法があるとして、あなたが値を確認しましょう方法を検討することができます
if (number == 5 || ...)
のようなものを選ぶことができます。あなたが望むことが分かっている有効な数値と比較するだけで、if
ステートメントを実行したり、数値を配列に配置したり、配列を繰り返し処理している間に値を比較したりすることができます。あなたが始まり、幸せなコーディングに役立つことを願っています!
編集:最後に言及しておきたいことがありますが、コードの流れを考慮する必要があります。あなたのチェックのためのsomesortのループはwhile(!isValidOption())
のようにする必要があります。ユーザーが有効なオプションを入力するまで、指示を繰り返します。ここでコードの操作の順序を考え、コンピュータがあなたのために考えていないことを理解する必要があります。それはあなたが言うことをするので、あなたがここでそれを伝えようとしていることを理解する。例えば、I want to step into my game, if and only if, the condition of isValidOption is met
。
何をする必要がある、あなたが確認するためにあなたがループ内のコードを書くことができます
private int getNumberOfGuesses(Scanner scan) {
int numberOfGuesses;
boolean numberOfGuesesIsValid;
do {
System.out.println("How many guesses would you like? (5, 10, 20)");
numberOfGuesses = scan.nextInt();
numberOfGuesesIsValid = numberOfGuesses == 5 || numberOfGuesses == 10 || numberOfGuesses == 20;
if (!numberOfGuesesIsValid) {
System.out.print("Wrong option !!!");
}
} while (!numberOfGuesesIsValid);
return numberOfGuesses;
}
次の関数を使用することができますたとえば、あなたの要求を満たす入力を取得するまでループ内で滞在することです値はどちらかである5,10または20
while(numberOfGuesses!=5||numberOfGuesses!=10||numberOfGuesses=!20);
と条件if(answer.length()==3
は、エラーを引き起こす可能性があります。入力が長さ3の場合、つまり「noo」でも毎回動作することを意味します。
- 1. ユーザー入力の検証Javaクラス
- 2. Cユーザー入力の検証 -
- 3. ユーザー入力の検証
- 4. Hangmanユーザー入力の検証
- 5. Pythonのbabynamesプロジェクトでユーザー入力を検証しようとしています
- 6. JavaScriptでユーザー入力のURLを取得して検証する
- 7. Django formset - ユーザーのCookieに基づいて入力を検証しますか?
- 8. Javaの入力検証メソッド
- 9. スキャナ入力の検証Java
- 10. java入力パラメータの検証
- 11. Java:ユーザー入力を検証する方法
- 12. ユーザー入力を検証する - Objective-C
- 13. ユーザー入力を検証するvba
- 14. ユーザーの入力を検証し、正しいまでループします。
- 15. GSheetsにユーザー入力の検証/ Javascriptを
- 16. ArrayListに対してユーザー入力を検証する
- 17. 入力ボックスでのユーザー入力の検証
- 18. ユーザー入力を検証する正しい構文は何ですか?
- 19. ユーザー入力HTMLサブセットの検証
- 20. ユーザー入力の検証 - hasnext()while
- 21. 日付(mm/dd/yyyy)を入力し、入力したデータを検証するユーザー
- 22. ユーザーがYesまたはNoを入力したかどうかを検証しようとしています
- 23. ユーザーが入力した文字列を検証する方法は? (Java)
- 24. ユーザー入力検証とビジネスオブジェクトの検証混乱
- 25. jquery IE 8で入力の検証を検証しない
- 26. Javaの平日入力検証
- 27. ユーザーが入力した値を検証する方法は?
- 28. Linuxは入力を検証しています
- 29. Javaでは、アルファ値と数値の両方でユーザー入力を検証できますか?
- 30. cでユーザー入力を検証する方法は?
この質問を改善するには、試した方法の1つまたは2つとエラーを表示する必要があります。このサイトが意図しているものではないので、誰かにあなたにコードを渡す可能性は低いです。 – Lexi
あなたは何を試しましたか、そうしたときにどんなエラーがありましたか? – RamPrakash