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 这样的值,程序会启动一个无限循环,直到我停止它。我应该在代码中更改什么以防止程序接受双精度值,即使 int 是必要的,这样如果我输入像 1.1 这样的双精度值,程序会要求再次输入该值?

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 回答