Ternärer Operator in C erklärt

Programmierer verwenden den ternären Operator zur Entscheidungsfindung anstelle längerer if- und sonst bedingter Anweisungen.

Der ternäre Operator nimmt drei Argumente an:

  1. Das erste ist ein Vergleichsargument
  2. Das zweite ist das Ergebnis eines echten Vergleichs
  3. Der dritte ist das Ergebnis eines falschen Vergleichs

Es ist hilfreich, sich den ternären Operator als Kurzform vorzustellen oder eine if-else-Anweisung zu schreiben. Hier ist ein einfaches Entscheidungsbeispiel mit if und else :

int a = 10, b = 20, c; if (a < b) { c = a; } else { c = b; } printf("%d", c);

Dieses Beispiel benötigt mehr als 10 Zeilen, dies ist jedoch nicht erforderlich. Sie können das obige Programm mit einem ternären Operator in nur 3 Codezeilen schreiben.

Syntax

condition ? value_if_true : value_if_false

Die Anweisung wertet aus, value_if_trueob conditionerfüllt ist, und value_if_falseansonsten.

Hier ist das obige Beispiel, das umgeschrieben wurde, um den ternären Operator zu verwenden:

int a = 10, b = 20, c; c = (a < b) ? a : b; printf("%d", c);

Die Ausgabe des obigen Beispiels sollte sein:

10

cwird gleich gesetzt a, weil die Bedingung a < bwahr war.

Denken Sie daran, dass die Argumente value_if_trueund value_if_falsevom selben Typ sein müssen und es sich eher um einfache Ausdrücke als um vollständige Anweisungen handeln muss.

Ternäre Operatoren können wie if-else-Anweisungen verschachtelt werden. Betrachten Sie den folgenden Code:

int a = 1, b = 2, ans; if (a == 1) { if (b == 2) { ans = 3; } else { ans = 5; } } else { ans = 0; } printf ("%d\n", ans);

Hier ist der obige Code, der mit einem verschachtelten ternären Operator neu geschrieben wurde:

int a = 1, b = 2, ans; ans = (a == 1 ? (b == 2 ? 3 : 5) : 0); printf ("%d\n", ans);

Die Ausgabe beider obigen Codesätze sollte sein:

3