Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的多用户输入错误消息(while循环)_Java_Error Handling_While Loop_User Input - Fatal编程技术网

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

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

  • 非数值,或
  • 负值 我只能在用户输入非数值而不是负值时打印错误消息。我想为用户输入错误分数时要打印的错误消息编写代码,但我仍然停留在步骤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);
    
            }
        }
    }
    
    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
    返回循环的开始,而不更改
    总计
    或增加
    计数