2012-04-30 3 views
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のような二重の値を入力するようにintが必要な場合でも、ダブル値を受け入れることからプログラムを変更する必要がありますか?intが必要なときにプログラムがdouble値を受け入れるのを防ぐ

答えて

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(); 
    } 
} 
関連する問題