2016-12-24 15 views
-5

私はJavaの初心者です。私は十代の年齢が13歳から19歳までのどこにあるのか知りました.2つのint値があり、10代の場合はtrueを、10代の場合はfalseを出力します。このコードで印刷文とif文の結果が異なる

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

} 
    out.println(true); 

、私は右の出力を生成することができた:

(13、99) - >期待:真>>ラン:真

(16、9) - >予想:真の>>実行:真

(13、19) - >予想:偽>>実行:偽

しかし、特にこのいずれかで、私はできません:(99、99) - >期待通り:false >>実行:真。今

私は声明としてそれをプリントアウトしようとした場合:

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

それが偽を出力します。何故ですか?

+0

あなたは*必ず*印刷 'true'を。あなたは 'else'を欠いています。 – EJP

+0

'a'と' b'の値が13-19の範囲にあるときだけ 'false'を表示します。あなたの最後のテストの変数の両方がその範囲にないことを考えれば、なぜそれが 'true'を出力すると期待していますか?もしも一方が10代のときに 'false'をしたいときに' if'文のロジックを調べなければならないかもしれません。 – AntonH

+0

'(a> = 13 && a <= 19)&&(b> = 13 && b <= 19)'はfalseになるため、99が19以下ではないためif文の内部には入りません。 –

答えて

0

enter image description here

私はあなたが論理AND(& &)の概念を理解することができます今願っています: -

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

1はTRUE + TRUE出力は、出力がFALSEになりそうTRUEになります。

0

True & True = True。

真&(真以外は)偽=

関連する問題