输入0到100之间的验证

时间:2016-10-10 16:00:12

标签: java

我陷入了这个活动,我需要测试键盘输入的数字是否有效,介于0和100之间。问题是,如果有人输入负数,它将同时打印“有效”和“无效”有效“我只想打印无效,有人可以帮助我吗?

 Scanner scan = new Scanner(System.in);

       System.out.println("Enter a test score: ");

       double t = scan.nextDouble();


       if(t <= 100)
       {  
         System.out.println("Valid");
       }
        if(t > 0 )
       {  
         System.out.println("Not Valid");
       }

    }
}

4 个答案:

答案 0 :(得分:1)

这些问题可以通过以下方式轻松解决......只需仔细阅读您写入自己程序的内容!

含义:你,作为一个人类&#34;奔跑&#34;那个节目。你会发现:

首先检查数字是否小于100;然后打印&#34;有效&#34;。

然后检查数字是否大于0;然后打印&#34;无效&#34;。

你真的很惊讶 那个范围(0,100)同时是有效和无效的吗?!

所以答案是:

  1. 您必须定义有效和无效数字的范围。
  2. 然后使用if + else将该信息打印给用户
  3. 换句话说:在你开始编程之前,你需要清楚地理解&#34;范围&#34;你的问题。不要期望&#34;只是编写源代码&#34;确定要使用的规则。您需要在编码之前制定规则

    然后,你最终可能会:

    if (t >= 0 && t <= 100) {
      System.out.println("Valid");
    } else {
      System.out.println("Not valid");
    }
    

    或许,完全不同的东西。这取决于你认为真正有效的规则!

答案 1 :(得分:0)

试试这个:

if(t <= 100 && t > 0)
 {  
   System.out.println("Valid");
 }
else
 {  
   System.out.println("Not Valid");
 }

答案 2 :(得分:0)

您有两个独立的条件。如果您输入-1,则t <= 100的评估结果为true,这就是您为Valid打印的原因。

您应该使用AND &&同时比较两个条件。

它应该是这样的:

if(t>0 && t<=100) {
    System.out.println("Valid");
} else {
    System.out.println("Not Valid");
}

答案 3 :(得分:0)

您将要测试0到100之间的值是否有效,然后其他所有值都无效:

if (t >= 0 && t <= 100) {
    System.out.println("Valid");
} else {
    System.out.println("Not valid");
}