Boolesche Syntax. Bitte erklären Sie [Duplikat]

Nov 16 2020

Kann mir bitte jemand diese Java-Syntax erklären. public boolean isDead() { return numFightersAlive() == 0 ? true : false; }Ich bin neu in Java und habe mich gefragt, was für eine Syntax das ist. Normalerweise würde ich eine Variable erstellen und die boolesche Variable zurückgeben, aber ich sehe zum ersten Mal ein Fragezeichen in einem Code.

Antworten

Valhalla Nov 16 2020 at 06:57

Dies nennt man ternär. Es ist eine verkürzte Version eines Wenn, aber es ist nicht immer besser als ein Wenn.

Die Syntax eines Ternärs lautet wie folgt:

(condition) ? result in case of being true: result in case of being false

In diesem Fall: Die Rücksendung fragt nach einer Bedingung. Ist die Bedingung gleich Null?

Wenn es wahr ist, hat return einen wahren Wert, wenn es falsch ist, hat return einen falschen Wert.

public boolean isDead() { return numFightersAlive() == 0 ? true : false; }
2 Maria Nov 16 2020 at 06:54

Nach dem Fragezeichen steht der Teil "dann", nach dem Doppelpunkt der Teil "sonst".

Das ist also die Kurzsyntax für

if (numFightersAlive() == 0) {
  return true;
} else {
  return false;
}

Es kann tatsächlich vereinfacht werden, gerecht zu sein

return numFightersAlive() == 0

Dies würde ein gleichwertiges Ergebnis ergeben