如何正确进行输入验证

时间:2016-12-06 22:37:40

标签: java validation input histogram

我正在尝试对我的直方图进行输入验证,因此如果用户读入减号,则应该输入正数。例如,用户输入-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循环部分。

2 个答案:

答案 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();
}

否则将永远不会检查第一个负值之后的值。