if Abfrage: Nicht jeder Fall berücksichtigt

Hallo,

ein (nutzloser) Code wie dieser hier wird von der JVM nicht akzeptiert:
Code:
public boolean isTrue() {
    int a = 5;
    if (a > 5) {
      return true;
    }
  }
--> Es gibt einen Zweig der kein boolean liefert (a <= 5).

Aber wieso ist dann das ok:
Code:
public boolean useOn(GameObject object) {
    if (object instanceof Door) {
      if (id == ((Door)object).id) {
        return ((Door)object).isOpen = true;
      }
    }
    return false;
  }
Hier gibt es doch ebenfalls einen Zweig, der keinen boolean liefert (id != ((Door)....)).

Warum wird das akzeptiert?
 
Zuletzt bearbeitet von einem Moderator:
K

kneitzel

Doch, wenn das if nicht zutrifft, dann geht es ja nach dem if weiter. Und so läuft es dann bis zu dem return false;

Und bei dem Return im if: da sollte es wohl ein == sein, oder soll das eine Zuweisung von true an isOpen sein mit einem Return true?
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben