0
Scanner input = new Scanner( System.in );   
System.out.println("Input the minimum necessary word count in a single article!");
int minArticleLength1 = input.nextInt();
while (minArticleLength1<0){
    System.out.println("Input the minimum necessary word count in a single article!");
    minArticleLength1 = input.nextInt();
}

プログラムのこの部分でわかるように、値を int 型変数に代入する必要があります。int 型の値を入力するとすべて正常に動作しますが、1.1 のような値を割り当てると、プログラムは停止するまで無限ループを開始します。1.1 のような double 値を入力すると、プログラムが再度値を入力するように要求されるように、int が必要であるにもかかわらず、プログラムが double 値を受け入れないようにするには、コードで何を変更する必要がありますか?

4

1 に答える 1

2

ループ内でステートメントを使用して、try...catch無効な入力をキャッチできます。

while (minArticleLength1 < 0){
    System.out.println("Input the minimum necessary word count in a single article!");
    try {
        minArticleLength1 = input.nextInt();
    } catch (InputMismatchException imex) }
        System.out.println("Please enter a valid integer.");
        minArticleLength1.nextLine();
    }
}
于 2012-04-30T01:05:19.610 に答える