Menu
Coddy logo textTech

Ternärer Bedingungsoperator

Teil des Abschnitts Fundamentals der C-Journey von Coddy — Lektion 29 von 63.

Der ternäre Bedingungsoperator ist eine Kurzschreibweise, um eine if-else-Anweisung in einer einzigen Zeile auszudrücken.

Die Syntax lautet:

condition ? value_if_true : value_if_false;

Schauen wir uns ein Beispiel an. Zuerst sehen wir hier eine traditionelle if-else-Anweisung:

int max;
if (a > b) {
    max = a;
} else {
    max = b;
}

Schreiben wir es nun mit dem Ternär-Operator um:

int max = (a > b) ? a : b;

In diesem Beispiel:

  • a > b ist die Bedingung
  • Wenn die Bedingung wahr ist, wird a zurückgegeben
  • Wenn die Bedingung falsch ist, wird b zurückgegeben

Der ternäre Operator kann auch verschachtelt werden, aber dies kann den Code schwerer lesbar machen:

int x = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);
challenge icon

Aufgabe

Einfach

Erstellen Sie ein Programm, das mithilfe des Bedingungsoperators prüft, ob eine Zahl positiv, negativ oder null ist. Das Programm soll:

  1. Eine Ganzzahl vom Benutzer entgegennehmen.
  2. Den Bedingungsoperator verwenden, um zu bestimmen, ob die Zahl positiv, negativ oder null ist.
  3. Geben Sie das Ergebnis im Format "The number is [positive/negative/zero]" aus.

Spickzettel

Der ternäre Bedingungsoperator bietet eine Kurzschreibweise, um eine if-else-Anweisung in einer einzigen Zeile auszudrücken.

Syntax:

condition ? value_if_true : value_if_false;

Beispiel für den Vergleich einer traditionellen if-else-Anweisung mit dem ternären Operator:

// Traditionelles if-else
int max;
if (a > b) {
    max = a;
} else {
    max = b;
}

// Ternärer Operator
int max = (a > b) ? a : b;

Der ternäre Operator kann verschachtelt werden, was jedoch die Lesbarkeit verringert:

int x = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);

Probier es selbst

#include <stdio.h>

int main() {
    int number;
    scanf("%d", &number);
    
    // Schreibe deinen Code unten
    char* result = 
    
    printf("The number is %s\n", result);
    return 0;
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Fundamentals