2016-11-17 4 views
0

Ich studiere gerade ternäre Operatoren und ich verstehe das meiste, aber ich will sehen, ob das möglich ist.Ternärer Operator keine falsche Option

normal ternär: (Zustand)? (Ergebnis wahr): (Ergebnis falsch);

Frage ist, wie man mit nur einem wahren Teil no false schreibt;

(Zustand)? (Ergebnis stimmt) :; oder (Zustand)? (Ergebnis ist wahr); oder Nicht möglich

Antwort

0

Es ist nur das würde keinen Sinn machen, da Ausdrücke einen konkreten Wert darstellen müssen.

Sie können nicht verwenden, wenn/else-Klauseln, da sie keine Ausdrücke sind:

print(if (value > 0) { "yes" } else { "no" });

Aber Sie können den ternären Operator für "inline" Auswertung verwenden:

print(value > 0 ? "yes" : "no");

Angenommen, was passiert, wenn die Bedingung zu falsch ausgewertet wird und es kein "Ergebnis" gibt - wie sollte der Compiler wissen, was gedruckt werden soll?

+0

Wenn es keinen Code gibt, gibt es einen Fehler oder springt einfach heraus. Ich versuche zu sehen, ob es das gleiche wie nur die if-Anweisung verwenden kann oder ist dies eine spezielle Art zu tun, wenn sonst nur – user3476870

+0

Im Allgemeinen wird die Verwendung ternärer Ausdruck als eine schlechte Programmierstil betrachtet - manchmal macht es den Code leichter zu lesen Normalerweise ist es jedoch besser, das Ergebnis in einer dedizierten Variablen zu speichern, da es Ihnen die Möglichkeit gibt, zu beschreiben, was Sie mit dem Variablennamen auswerten. – RedXIII