print语句和if语句的结果不同

时间:2016-12-24 02:25:05

标签: java if-statement

我是Java的初学者。我遇到了一个问题,其中一个青少年的年龄范围从13到19岁。有2个int值,如果一个是青少年,我应该打印为true,但如果两个都是青少年则打印错误。< / p>

if ((a >= 13 && a <= 19) && (b >= 13 && b <= 19)) {
  out.println(false);

} 
  out.println(true);

使用此代码,我能够生成正确的输出:

(13,99) - &gt;预期:true&gt;&gt; run:true

(16,9) - &gt;预期:true&gt;&gt; run:true

(13,19) - &gt;预期:false&gt;&gt; run:false

但特别是这个,我不能:(99,99) - &gt;预期:false&gt;&gt; run:true。

现在,如果我尝试将其作为声明打印出来:

System.out.println((99 >= 13 && 99 <= 19) && (99 >= 13 && 99 <= 19));

打印出错误。那是为什么?

2 个答案:

答案 0 :(得分:0)

enter image description here

我希望你现在能够理解逻辑AND(&amp;&amp;)的概念: -

Condition 1 Condition2  Output
true        true        true
true        false       false
false       true        false
false       false       false

一个TRUE + TRUE输出为TRUE,否则输出为FALSE。

答案 1 :(得分:0)

True&amp; True = True。

True&amp;(除了true之外的任何东西)= false