我正在尝试对我的直方图进行输入验证,因此如果用户读入减号,则应该输入正数。例如,用户输入-5,弹出一条错误消息,说输入一个正数,然后下一行表示输入下一个将成为正数的学生标记。我的问题是当我输入-5并且我输入的下一行将是减去我的代码停止运行时,它假设在用户输入我在我的while循环中声明的超过100的数字时停止
结果如下:
读入标记
3
输入下一个学生标记
43
输入下一个学生标记
-5
错误!输入正整数
-89
输入的标记总数为2
0-29: *
30-39:
40-69: *
70-100:
这就是我的预期:
读入标记
-20
错误!输入正整数
-30
错误!输入正整数
40
输入下一个学生标记
70
输入下一个学生标记
-5
错误!输入正整数
90
输入下一个学生标记
101
输入的标记总数为5
0-29: *
30-39: *
40-69: *
70-100: **
这是我用的
Scanner input = new Scanner(System.in);
System.out.println("Read in a mark");
mark = input.nextInt();
if(mark < 0) {
System.out.println("Error! Enter a positive number");
mark = input.nextInt();
}
while (mark <= 100 && mark >= 0) {
不要介意while循环部分。
答案 0 :(得分:0)
你可以这样做:
while(mark < 0) {
System.out.println("Error! Enter a positive number");
mark = input.nextInt();
}
答案 1 :(得分:0)
处理负值的最简单方法是将if子句替换为while子句,如下所示:
while (mark < 0) {
System.out.println("Error! Enter a positive number");
mark = input.nextInt();
}
否则将永远不会检查第一个负值之后的值。