Java第3章中例子9的程序允许用户在键盘上依次输入若干个数字(每输入一个数字都需要按回车确认),程序将计算出这些数的和以及平均值。请在第3章的例子9中增加断言语句,当用户输入的数字大于100或小于0时程序立刻终止执行,并提示这是一个非法的成绩数据
时间: 2024-12-27 20:32:15 浏览: 16
在Java的第3章例子9中,你可以通过添加条件判断和异常处理来实现这个功能。首先,在读取用户的输入之前,可以在循环体开始处添加一个if语句。以下是修改后的代码示例:
```java
import java.util.Scanner;
public class SumAndAverage {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int sum = 0;
int count = 0;
System.out.println("请输入数字,直到输入非数字字符退出:");
while (true) {
String numStr = input.nextLine();
try {
int number = Integer.parseInt(numStr); // 尝试转换输入为整数
if (number > 100 || number < 0) { // 判断是否超出范围
throw new IllegalArgumentException("非法的成绩数据"); // 异常处理
}
sum += number;
count++;
} catch (NumberFormatException e) { // 如果无法转换为整数,捕获并结束输入
System.out.println("这不是有效的数字,请重新输入!");
break;
} catch (IllegalArgumentException ex) {
System.err.println(ex.getMessage()); // 输出错误消息
System.exit(1); // 立即终止程序
}
}
double average = (double) sum / count;
System.out.printf("数字的总和是:%d,平均值是:%f\n", sum, average);
}
}
```
在这个版本中,如果用户输入的是非法的分数(大于100或小于0),程序会抛出`IllegalArgumentException`,然后捕获它并打印错误信息,最后使用`System.exit(1)`强制终止程序执行。
阅读全文