首页 > 解决方案 > 如果用户输入无效,如何不使用它?

问题描述

我的程序要求用户提供测试分数并显示最小值/最大值、测试次数和平均值。但是,如果分数不在 0 到 10 之间,我不希望在计算中使用该数字。我将如何在我的 do/while 循环中执行此操作?我试过输入 System.exit(0); if (num <= 0 || num >10) System.out.println("Score 必须在 10 和 0 之间"); 但它破坏了我的程序。这是我的代码:

import java.util.*;
public class QuizScoreStatistics {
public static void main (String args[]) {
      float max=0;
    float min=99;
    float avg=0;
    float count=0;
    float sum=0;
    float num;
    Scanner scan=new Scanner(System.in);
    System.out.println("Please input test scores with values between 0-10.\nEnter 99 to finish.");
    num=scan.nextInt();
    float temp=num;

    do
    {
        if(num==99) 
            System.exit(0);

        if (num <= 0 || num >10)
        System.out.println("Score must be between 10 and 0");



        if(num>=0 && num<=100)
        {
            count++;
            sum+=num;
            if(num>max ) 
                max=num;
            if(num<min)
                min=num;
        }
    } while((num=scan.nextInt())!=99);

   // System.out.println("Test Statistics:");
    System.out.println("Number of tests: "+count);
    System.out.println("Lowest: "+min);
    System.out.println("Highest: "+max);;
    System.out.printf("Average: " + sum/count);
}

}

标签: java

解决方案


您可以尝试继续执行其余的 do-while 循环。

if (num <= 0 || num >10){
        System.out.println("Score must be between 10 and 0");
        continue;
}

推荐阅读