Java 线程“中输入错误异常时出错”;“主要”;

Java 线程“中输入错误异常时出错”;“主要”;,java,Java,如果我输入int number=scanner.nextInt(),就会出现问题并写入错误的输入,则工作正常 但是如果我没有在if之外编写它,当我键入错误的输入时会出现以下错误 Exception in thread "main" java.util.InputMismatchException at java.base/java.util.Scanner.throwFor(Scanner.java:939) at java.base/java.util.Scanner.next(Scanner

如果我输入
int number=scanner.nextInt(),就会出现问题
括号中有code>并写入错误的输入,则工作正常

但是如果我没有在
if
之外编写它,当我键入错误的输入时会出现以下错误

Exception in thread "main" java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at UserInput.main(UserInput.java:15)
守则:

import java.util.Scanner;

public class UserInput {

public static void main(String[] args) {
    int Sum=0, counter = 0,no=1;
    Scanner scanner;
    scanner = new Scanner(System.in);

    do {
        System.out.println("Enter number #" + no + " = ");

        boolean result =  scanner.hasNextInt();
        int number = scanner.nextInt();

        if(result == true)
        {
            counter = counter + 1;
            Sum = Sum + number;
            no = no+1;
        }
        else
        {
            System.out.println("Invalid Input");
        }
        scanner.nextLine();
        }while(counter<10);
    System.out.println("Sum = " + Sum );
    scanner.close();
    }
}
import java.util.Scanner;
公共类用户输入{
公共静态void main(字符串[]args){
整数和=0,计数器=0,否=1;
扫描仪;
扫描仪=新扫描仪(System.in);
做{
System.out.println(“输入数字#“+no+”=”);
布尔结果=scanner.hasNextInt();
int number=scanner.nextInt();
如果(结果==真)
{
计数器=计数器+1;
总和=总和+数字;
no=no+1;
}
其他的
{
System.out.println(“无效输入”);
}
scanner.nextLine();

}当(通过将其放入
if
中进行计数器时,除非您知道要获取一个标记(即
结果
为true),否则不调用
nextInt

如果hasNextInt()返回false,则意味着扫描器的下一个标记(标记=被“扫描”的对象的片段)不是整数。如果您现在调用方法nextInt()虽然下一个标记实际上不是整数,但您会得到InputMismatchException。正如Scott所说,通过将调用放在if语句中,您可以防止这种情况发生,因为您确保下一个标记是整数,并且您可以实际调用nextInt()。

您是说如果hasnextInt()如果
hasNextInt()
返回false,则不应该得到
int
。不要像描述错误的输入那样描述您的输入。只要告诉它是什么就行了!