首页 > 解决方案 > “错误”的计算结果。爪哇。所以卡住了

问题描述

大家好。 我被卡住了,不明白为什么代码会给我一个“错误”的答案。

我的任务:编写一个程序,该程序接受数字并对其进行计数,直到用户键入“exit”,然后程序打印出用户刚刚插入并停止的所有数字的摘要。

我现在在网上学java,不知道怎么回答:当你输入1或2或3个或更多的数字时,它计算并打印错误的结果,甚至代码无法编译并弹出出现错误。

例如,您输入 2 个数字,但出现错误

线程“main”java.lang.NumberFormatException 中的异常:对于输入字符串:java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68) at java.base/java.lang.Integer.parseInt 的“exit” (Integer.java:652) 在 java.base/java.lang.Integer.parseInt(Integer.java:770) 在 JR.constructors.Solution.main(Solution.java:11)


OR 3 个数字,例如 2 + 3 + 4,它会打印 6 而不是 8。

请帮帮我!

这是我的代码

public static void main(String[] args) throws Exception {
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    int sum = 0;
    while(true){
        int a = Integer.parseInt(reader.readLine());
        String s = reader.readLine();
        sum += a;
        if(s.equals("exit")){
            System.out.println(sum);
            break;
        }
    }
}

标签: java

解决方案


如果任何人键入除数字以外的任何内容Integer.parseInt()都会失败并抛出错误,因此使用1变量从流中获取输入,首先查看用户是否键入了“退出”,如果不尝试将字符串转换为整数,则使如果用户键入的内容无效,请务必将其放入 try catch 块中以捕获错误。


推荐阅读