我有一个程序,用户输入数字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);
}
无论如何,我可以将该验证纳入该循环吗? 感谢
答案 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);
}