java - “错误”的计算结果。爪哇。所以卡住了
问题描述
大家好。 我被卡住了,不明白为什么代码会给我一个“错误”的答案。
我的任务:编写一个程序,该程序接受数字并对其进行计数,直到用户键入“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;
}
}
}
解决方案
如果任何人键入除数字以外的任何内容Integer.parseInt()
都会失败并抛出错误,因此使用1变量从流中获取输入,首先查看用户是否键入了“退出”,如果不尝试将字符串转换为整数,则使如果用户键入的内容无效,请务必将其放入 try catch 块中以捕获错误。
推荐阅读
- azure-application-insights - kusto 函数来解析数字的 json
- c - 在 C 中,在找到用于修复此代码的正确运算符时遇到问题 [简单] 问题出在 (!=)
- c++ - 保持向量的值
- python - 在列表而不是单独的向量上运行 Levene 的测试
- javascript - 如何过滤数组中的对象并仅返回数字?Javascript
- java - java 将大块订单行转换成订单
- ios - 如何使用 Bazel(不使用 Cocoapod)将外部依赖项添加到 Swift 项目中
- javascript - 如何在 d3 中选择特定的 SVG 并更改其属性?
- html - ColdFusion uploadall,上传多个文件,AJAX,插入MySQL表
- vue.js - Vue v-on:click 将其更改为加载或鼠标悬停事件