java - 如果用户输入无效,如何不使用它?
问题描述
我的程序要求用户提供测试分数并显示最小值/最大值、测试次数和平均值。但是,如果分数不在 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);
}
}
解决方案
您可以尝试继续执行其余的 do-while 循环。
if (num <= 0 || num >10){
System.out.println("Score must be between 10 and 0");
continue;
}
推荐阅读
- javascript - 按名称将频道添加到类别
- redis - 在redis中复制一个键
- python - Numpy - 一维和二维数组的不同行为
- java - SocketException:无效参数:当 jre 在映射驱动器上定位时创建
- docker - Docker:忽略构建上下文中需要的一些文件
- javascript - 我如何知道谁使用 PHP 卸载了推送通知?
- adobe-analytics - 在工作区中为任何页面是特定页面的上一页的比率创建一个指标?
- c# - 如何让用户在运行 C# 应用程序之前安装 .net framework 4.5.2
- r - gganimate中的自定义列到框架标题
- rasa-core - 下载rasa_core时出现张量流问题