编写java程序,允许用户在键盘上依次输入若干个数字(每输入一个数字都需要按回车)。若输入的数字在0到100之间,则输出这些数字之和以及他们的平均数。当用户输入的数字大于100或小于0时程序执行try catch,抛出异常,并提示这是一个非法的成绩数据
时间: 2024-02-28 07:52:01 浏览: 59
好的,我可以帮您解答这个问题。以下是Java程序的代码:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int sum = 0; // 用于存储输入数字之和
int count = 0; // 用于存储输入数字个数
int input; // 用于存储用户输入的数字
while (true) {
try {
System.out.print("请输入一个数字(输入-1结束):");
input = Integer.parseInt(scanner.nextLine()); // 获取用户输入的数字
if (input == -1) { // 用户输入-1,则结束输入操作
break;
}
if (input < 0 || input > 100) { // 如果输入的数字小于0或大于100,则抛出异常
throw new IllegalArgumentException("输入的数字不在0-100之间");
}
sum += input;
count++;
} catch (NumberFormatException e) { // 如果用户输入的不是数字,则抛出异常
System.out.println("请输入一个有效的数字");
} catch (IllegalArgumentException e) { // 如果输入的数字不在0-100之间,则抛出异常
System.out.println(e.getMessage());
}
}
if (count == 0) { // 如果没有输入数字,则直接结束程序
System.out.println("没有输入任何数字");
return;
}
double average = (double) sum / count; // 计算平均数
System.out.println("数字之和为:" + sum);
System.out.println("数字的平均数为:" + average);
}
}
```
在上面的代码中,我们使用了一个 `while` 循环来不断获取用户输入的数字,并计算它们的和以及平均数。在每次获取用户输入后,我们使用 `try-catch` 语句来捕捉可能抛出的异常,包括输入非数字和输入不在0-100之间的数字。如果用户输入-1,则结束输入操作。最后,我们输出数字之和和平均数。
希望我的回答对您有所帮助!
阅读全文