2016-12-24 2 views
-5

Ich bin ein Anfänger bei Java. Ich bin auf eine Frage gestoßen, bei der das Alter eines Teenagers zwischen 13 und 19 liegt. Es gibt 2 int-Werte, und ich soll true drucken, wenn man ein Teenager ist, aber falsch drucken, wenn beide Teenager sind.Ergebnis von Druckanweisung und wenn Aussage differieren

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

} 
    out.println(true); 

Mit diesem Code konnte ich die richtige Ausgabe erzeugen:

(13, 99) -> erwartet: true >> Lauf: true

(16, 9) -> erwartet: true >> Lauf: true

(13, 19) -> erwartet: false >> Lauf: false

Aber mit diesem insbesondere, kann ich nicht: (99, 99) -> erwartet: false >> run: true.

Nun, wenn ich versuche, es zu drucken als Aussage:

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

Es falsch druckt. Warum das?

+0

Sie sind * immer * Drucken 'true'. Du vermisst ein "else". – EJP

+0

Sie drucken nur "falsch", wenn der Wert von "a" und "b" im Bereich 13-19 liegt. Da diese beiden Variablen in Ihrem letzten Test nicht in diesem Bereich liegen, warum erwarten Sie, dass sie "wahr" ausgibt? Sie müssen möglicherweise die Logik Ihrer 'if'-Anweisung überprüfen, wenn Sie' false' wollen, wenn nur einer ein Teenager ist und der andere nicht. – AntonH

+0

'(a> = 13 && a <= 19) && (b> = 13 && b <= 19)' wird falsch sein, deshalb geht es nicht in die if-Anweisung, weil 99 NICHT kleiner als oder gleich 19 ist –

Antwort

0

enter image description here

ich hoffe, dass jetzt können Sie das Konzept der logischen AND (& &) verstehen: -

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

eines der TRUE + TRUE Ausgang TRUE sein wird, sonst Ausgang FALSCH sein wird.

0

Wahr & Wahr = Wahr.

Wahre & (alles andere als wahr) = false