java循环和处理数据输入错误
我正在尝试创建一个Java程序,允许用户输入任意数量的数值等级,然后计算MIN
,MAX
&Average
。处理输入错误让我感到困惑
我提出了两种不同的方法,第一种方法允许用户输入他们想要的分数,直到用户输入sentinel -1
。第二种方法提示用户提前输入分数
// APPROACH ONE:
double grade = 0;
while (grade != -1) {
grade = input.nextDouble();
}
// APPROACH TWO:
System.out.println("Enter number of grades: ");
double num = input.nextDouble();
for (int i = 1, i <= num, i++) {
System.out.println("Enter grade: ");
double grade = input.nextDouble();
}
当输入参数之外的数字时,我需要合并消息来提醒用户——lettesr、words等。当我试图实现这些错误处理循环时,我不知道如何让循环忽略错误响应
例如,在我的方法二中,如果用户输入3个等级,然后输入89.5
,93.4
,-1
,我的程序就结束了,因为它认为-1
是这3个等级的一部分
我想不出如何让它识别-1,显示错误,然后提示再输入一个总数为3的条目。也许方法一会更容易,因为没有预先确定的分数
# 1 楼答案
为了解决这个问题,我通常使用while循环,它看起来像这样:
这会让用户进入一个循环,直到他们输入一个介于0和100之间的数字时才能退出,而for循环中的n值直到他们输入一个有效的数字时才会更新
# 2 楼答案
要向用户发出警告消息,您可能需要尝试使用
try/catch
语句(异常处理),并将布尔值作为while循环的控件。此外,鉴于您的代码需要用户输入一些数字,我认为您需要使用某种array/arraylist
来帮助计算min/max/avg。因此,您的代码可能是这样的: