1

無効な入力後にユーザーに再プロンプトを表示する必要がある Java でこのプログラムを作成しています。ユーザーが再プロンプトの後に別の無効な入力を入力すると、それが続くことを発見するためだけに解決策にたどり着きました。誰かがこれに対するより良い解決策を教えてもらえますか? とにかく私が持っていたものをお見せします:

System.out.println("What is your age?\n");
    age = userInput.nextInt();

    if((age > 120) || (age < 1)) {//error message
        System.out.println("ERROR Please enter a valid age");
        System.out.println("");
        System.out.println("What is your age?\n");
        age = userInput.nextInt();
    }//end if

再度プロンプトが表示された後にユーザーが無効な入力を入力した場合、プログラムは続行されます。どうすればこれを克服できますか?

4

6 に答える 6

6

に置き換えifますwhile

BAM、問題は解決しました。

于 2013-09-10T14:41:49.523 に答える
3

whileループを使用します。

while (true) {
    System.out.println("What is your age?\n");
    age = userInput.nextInt();
    if ((age > 120) || (age < 1))
        System.out.println("ERROR Please enter a valid age\n");
    else
        break;
}
于 2013-09-10T14:42:03.023 に答える
0

これはどうですか

---->一度チェック - 入力が空か、スペースバーを押しただけか

Scanner scnr = new Scanner(System.in);      
System.out.println("Enter a string: ");
String input = scnr.nextLine(); 

boolean isEmpty = input == null || input.trim().length() == 0;
if (isEmpty){
    System.out.println("Enter a string again: ");
    input = scnr.nextLine(); 
}

------> 複数回チェック - 入力が空か、スペースバーを押しただけか

 Scanner scnr = new Scanner(System.in);       
do {
    System.out.println("Enter a string: ");
    input = scnr.nextLine();
}
     while (input == null || input.trim().length() == 0);

重要: この場合、入力は静的文字列でなければならないことを忘れないでください。

static String input=""; 
于 2018-10-23T01:02:49.570 に答える