gpt4 book ai didi

java - 线程 "main"中错误输入异常出错

转载 作者:行者123 更新时间:2023-12-02 00:29:17 25 4
gpt4 key购买 nike

如果我将 int number = Scanner.nextInt (); 放在 if 括号中并写入错误的输入,则会出现问题,但效果很好。

但是如果我不在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();
}
}

最佳答案

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

关于java - 线程 "main"中错误输入异常出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58028173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com