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?
Sie sind * immer * Drucken 'true'. Du vermisst ein "else". – EJP
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
'(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 –