循环中的验证?

时间:2014-12-06 12:30:11

标签: java

我有一个程序,用户输入数字1,2或3.取决于用户输入当年成绩的数字; e.g

用户输入2
59个
39

但是我如何编写一个验证输入的循环,这意味着它不能超过100或低于0.

我会提供代码,但我确实不知道从哪里开始。

确实有一个循环,将成绩输入到一个arraylist

grades.clear();
for(int i = 0; i <= level; i++){
    System.out.println("Please enter your grade for level " + i);
    level1 = s.nextInt();
    grades.add((double) level1);
} 

无论如何,我可以将该验证纳入该循环吗? 感谢

3 个答案:

答案 0 :(得分:2)

试试这个方法

public static int loopToValidate(Scanner s) {
    int i = 0;
    for (;;) {
        i = s.nextInt();
        if (i >= 0 && i <= 100) {
            break;
        } else {
            System.out.println("Please enter your grade for level it should be greater than 0 and less than 100");
            loopToValidate(s);
        }
    }
    return i;
}

在for循环中进行此更改。

for(int i = 0; i <= level; i++){ System.out.println("Please enter your grade for level " + i); level1 = loopToValidate(s); grades.add(Double.parseDouble(String.valueOf(level1))); }

答案 1 :(得分:1)

尝试以下内容:

grades.clear();
for(int i = 0; i <= level; i++){
    System.out.println("Please enter your grade for level " + i);
    level1 = s.nextInt();
    if (level1 < 0 || level1 > 100) {
        i--;
        //print invalid input?
        continue;
    }
    grades.add((double) level1);
}  

答案 2 :(得分:1)

您应该在此处使用while周期:

    for(int i = 0; i <= level; i++){
        level1 = -1;
        while (level1 < 0 || level1 > 100) {
            System.out.println("Please enter your grade for level " + i);
            level1 = s.nextInt();
        }
        grades.add((double) level1);
    }