In meinem Code möchte ich, wenn der Status eines Hundes überprüfen object
ist nicht, dass von 3 Enums
:Korrekte Möglichkeit, mehrere Bedingungen in If-Anweisung zu verwenden?
if((dogList.get(i).getStatus()!= dogStatus.SLEEPING
|| dogList.get(i).getStatus()!= dogStatus.WALKING
||dogList.get(i).getStatus()!= dogStatus.EATING )){
//do something
}
Ist dies der richtige Weg, um die 3 ||
Bedingungen zu kombinieren? Ich frage, wie sich mein Programm nicht so verhält, wie ich es erwarte.
es ist "richtig", aber es ist nicht korrekt. Sie testen auf Ungleichheit. Da getStatus() immer nur einen Wert haben kann, werden Sie immer als WAHR bewerten, weil die anderen beiden Anweisungen nicht gleich sein können. du willst stattdessen '&&'. Betrachten Sie dieses Äquivalent: wenn diese Katze kein Hund ist und diese Katze kein Gorilla ist und diese Katze keine Katze ist. vs. das Äquivalent mit "oder" anstelle von "und". –
Sie würden '&&' (AND) anstelle von '||' (OR) dafür verwenden. Zum Beispiel, wenn der Status WALKING war, würde Ihr if 'TRUE || lesen FALSCH || TRUE = TRUE, wenn 'TRUE && FALSE && TRUE = FALSE' –