我试图让机器在输入不正确的数据时打印一条错误消息。当用户提供以下信息时,将显示两种类型的错误消息
如果用户输入非数字值,但不能输入负值,则只能打印错误消息。如果用户输入了错误的成绩,我想编写要打印的错误消息的代码,但是我仍然停留在步骤1。应该在下面的程序中将其放置在哪里?
import java.util.Scanner;
public class lab7errortesting {
public static void main(String args[]){
Scanner input = new Scanner(System.in);
System.out.println("Enter the number of grades: ");
if (!input.hasNextDouble()) {
System.out.println("***Error: Entered a non-numeric data. Please enter numeric data.");
input.next();
} else {
double random = input.nextDouble();
double min = Integer.MIN_VALUE;
double max = Integer.MAX_VALUE;
double total=0;
int count = 1;
while (count < random+1) {
System.out.println("Enter grade " + count + ":");
double grade = input.nextDouble();
total+=grade;
count++;
if (max > grade){
max = grade;
}
if (min < grade){
min = grade;
}
}
System.out.println("Total is " + total);
System.out.println("Average is " + (total/random));
System.out.println("Smallest number is " + max);
System.out.println("Largest number is " + min);
}
}
}
最佳答案
我不确定这是否是您要尝试的方法,但是如果您只想滤除所有负面成绩,则可以尝试以下方法:
//...
double grade = input.nextDouble();
if (grade < 0){
System.err.println("Not a valid grade");
continue;
}
total += grade;
count++;
//..
这将打印出错误消息,并提示用户输入新的数字(如果为负数)。因此,您只需检查输入的数字是否为负数,如果是这种情况,它将使用
continue
返回循环的开头,而无需更改total
或增加count
。
关于java - Java中的多个用户输入错误消息(while循环),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35713670/