【问题标题】:how to do a input validation properly如何正确进行输入验证
【发布时间】:2016-12-06 22:37:40
【问题描述】:

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

【问题讨论】:

    标签: java validation input histogram


    【解决方案1】:

    处理负值最简单的方法是将 if 子句替换为 while 子句,如下所示:

    while (mark < 0) {
        System.out.println("Error! Enter a positive number"); 
        mark = input.nextInt();
    }
    

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

    【讨论】:

      【解决方案2】:

      你可以这样做:

      while(mark < 0) {
          System.out.println("Error! Enter a positive number"); 
          mark = input.nextInt();
      }
      

      【讨论】:

        猜你喜欢
        • 2020-02-13
        • 2019-12-09
        • 2023-02-04
        • 2023-02-05
        • 2021-12-28
        • 2012-01-13
        • 2023-03-31
        • 2021-10-20
        • 2014-07-24
        相关资源
        最近更新 更多