**结束。**此问题需要详细的调试信息。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。
上个月关门了。
改进这个问题
public static void inputThenPrintSumAndAverage (){
Scanner scanner = new Scanner(System.in);
int count =0;
int sum =0 ;
long average = 0;
boolean isAnInt = scanner.hasNextInt();
while (true) {
count++;
int number = scanner.nextInt();
if (isAnInt) {
sum+=number;
average = Math.round((sum/count));
} else {
break;
}
scanner.nextLine();
}
System.out.println("SUM = "+sum+ " AVG = "+average);
scanner.close();
}
当我给它一个字符串时,它会给出异常,甚至不执行“sum and avg”值。如何更改代码以使其正常工作?如果我有一些错误的概念知识,请帮助我理解这个概念。谢谢您。
1条答案
按热度按时间vfwfrxfs1#
你不需要
Scanner#hasNextInt
为了Scanner(System.in)
. 而且,你不需要支票,if (isAnInt)
. 相反,你应该放一个try-catch
阻止。你不应该关门
Scanner(System.in)
; 否则,如果不重新启动jvm,就无法再次打开它。当您使用
Scanner
为了一个File
.演示:
示例运行:
注意:如果将平均值声明为
double
并将浮点计算存储到其中而不进行舍入,例如。此更改后的示例运行:
理解这个概念对你也很有帮助。