Java中的多用户输入错误消息(while循环)
我试图让机器在输入错误数据时打印错误消息。当用户提供时,将显示两种类型的错误消息Java中的多用户输入错误消息(while循环),java,error-handling,while-loop,user-input,Java,Error Handling,While Loop,User Input,我试图让机器在输入错误数据时打印错误消息。当用户提供时,将显示两种类型的错误消息 非数值,或 负值 我只能在用户输入非数值而不是负值时打印错误消息。我想为用户输入错误分数时要打印的错误消息编写代码,但我仍然停留在步骤1。在下面的程序中,我应该把它的代码放在哪里 import java.util.Scanner; public class lab7errortesting { public static void main(String args[]){ Scanne
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);
}
}
}
import java.util.Scanner;
公共类lab7errortesting{
公共静态void main(字符串参数[]){
扫描仪输入=新扫描仪(System.in);
System.out.println(“输入等级数:”);
如果(!input.hasNextDouble()){
System.out.println(“***错误:输入了非数字数据。请输入数字数据。”);
input.next();
}否则{
double random=input.nextDouble();
双最小值=整数.min\u值;
double max=整数最大值;
双倍合计=0;
整数计数=1;
而(计数<随机+1){
System.out.println(“输入等级”+计数+”:”;
double grade=input.nextDouble();
总数+=年级;
计数++;
如果(最大值>等级){
最大值=等级;
}
如果(最低<等级){
min=等级;
}
}
系统输出打印项次(“总计为”+总计);
System.out.println(“平均值为”+(总/随机));
System.out.println(“最小值为”+max);
System.out.println(“最大值为”+min);
}
}
}
我不确定您是否正试图这样做,但如果您只是想过滤掉所有的负面分数,那么您可以尝试以下方法:
//...
double grade = input.nextDouble();
if (grade < 0){
System.err.println("Not a valid grade");
continue;
}
total += grade;
count++;
//..
/。。。
double grade=input.nextDouble();
如果(等级<0){
System.err.println(“不是有效等级”);
继续;
}
总数+=年级;
计数++;
//..
这将打印一条错误消息,如果是负数,则提示用户输入新号码。因此,您只需检查输入的数字是否为负数,如果是这种情况,它将使用continue
返回循环的开始,而不更改总计
或增加计数