我需要帮助验证输入。我有一个基于用户输入的学生成绩的程序。如果有人输入低于0或超过100的成绩,我希望这个循环重新开始。以下是我到目前为止的情况:
double scores[] = new double[size];
for (int i = 0;i<= scores.length-1;i++)
{
System.out.print("\n\nScore number " + (i+1) + ": ");
scores[i] = sc.nextInt();
}
System.out.println("Here are your scores: " + Arrays.toString(scores));
我对如何实现无效检查程序感到困惑。我知道它与while循环有关。例如,当一个值为0时,如果有人输入无效答案,它将从0变为。但不确定我应该如何做到这一点,或者如果有更好的方法 任何帮助赞赏。感谢
答案 0 :(得分:0)
您可以使用嵌套的while循环和条件语句:
for (int i = 0;i< scores.length;i++){
while(true){
System.out.print("\n\nScore number " + (i+1) + ": ");
int score = sc.nextInt();
if(score >= 0 && score <=100){
scores[i] = score;
break;
}else{
System.out.println("Error: score entered is outside allowable range");
System.out.println("Please try again");
continue;
}
}
}
答案 1 :(得分:0)
您可以简单地要求用户重新输入错误输入的分数值。
double scores[] = new double[size];
for (int i = 0; i<= scores.length-1; i++)
{
System.out.print("\n\nScore number " + (i+1) + ": ");
scores[i] = sc.nextInt();
if(scores[i] < 0 || scores[i] > 100) {
i -= 1;
continue;
}
}
答案 2 :(得分:0)
我对如何实现无效检查程序感到困惑。我知道它与while循环有关。
do-while
循环在输入验证中是首选,因为它允许首先接收输入,然后检查它是否通过了要求。如果输入无效,请重复。
for(int i=0; i<scores.length; i++){
do{
System.out.print("\n\nScore number " + (i+1) + ": ");
input = sc.nextInt();
}while(input < 0 || input > 100);
scores[i] = input;
}
for循环和do-while循环用于不同的目的。因此,不要被
弄糊涂- for-loop ,它只负责接收数组的多个输入和
- while循环,它只负责验证每一个输入。