设置一个验证多个输入的while循环?

时间:2017-11-03 16:28:42

标签: java arrays loops while-loop

我需要帮助验证输入。我有一个基于用户输入的学生成绩的程序。如果有人输入低于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变为。但不确定我应该如何做到这一点,或者如果有更好的方法 任何帮助赞赏。感谢

3 个答案:

答案 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循环,它只负责验证每一个输入。