java - Java中的多个用户输入错误消息(while循环)

标签 java error-handling while-loop user-input

我试图让机器在输入不正确的数据时打印一条错误消息。当用户提供以下信息时,将显示两种类型的错误消息

  • 非数值或
  • 负值。

  • 如果用户输入非数字值,但不能输入负值,则只能打印错误消息。如果用户输入了错误的成绩,我想编写要打印的错误消息的代码,但是我仍然停留在步骤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/

    相关文章:

    python - python中 boolean 语句和if语句的问题

    PHP MYSQL while 循环直到与 break 和 sum 相同的值,而不是与下一个值相同

    c - 如何在 while 循环中找到最大值和最小值 - c

    java随机数平均计算

    java - Younggen 会抛出内存不足错误吗?

    typescript - 进行 Jest 测试以在抛出任何错误时失败?

    python - Python : list index out of range error

    error-handling - 为什么我无法将 ValueError 消息与 urllib 模块中的字符串进行比较?

    java - 我的几何程序(计算球体、圆柱体和圆锥体的面积和体积)

    java - 应用程序不断用此消息 : D/BubblePopupHelper:isShowingBubblePopup:false 填充 logcat