gpt4 book ai didi

循环中的 Java catch 语句不起作用

转载 作者:行者123 更新时间:2023-11-29 05:14:17 25 4
gpt4 key购买 nike

当我运行代码并说输入 2.5 时,我得到的输出是:

2.5,4次“错误”,5次。

这意味着计算机每次都通过catch语句,而不是每次循环通过while循环并进入try block 时都要求输入。

public static void main(String[] args)
{
Scanner s1 = new Scanner(System.in);
int n = 0;
while(n<5)
{
try
{
int grade = s1.nextInt();
System.out.println(grade);
}
catch(Exception e)
{
System.out.println("error");
}
n++;
}
System.out.println(n);
}

最佳答案

当您输入“2.5”时,nextInt() 会消耗 2。下一个被完全相同的 nextInt() 扫描的东西将是 . 而它不能被 nextInt() 成功扫描,所以你得到错误。 nextInt()只能用来扫描int的数字,如果要扫描2.5这样的小数,需要nextDouble()

顺便说一句,异常对象包含有用的信息。如果这样做,您只是在隐藏错误信息:

catch (Exception e) {
System.err.println(error):
}

改为这样做:

catch (Exception e) {
e.printStackTrace();
}

并且不要混合使用 System.outSystem.errSystem.out 用于正常的程序输出,但不用于记录、调试、信息、警告、错误或此类消息。这些应该转到 System.err

关于循环中的 Java catch 语句不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27133672/

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