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 > bist die Bedingung- Wenn die Bedingung wahr ist, wird
azurückgegeben - Wenn die Bedingung falsch ist, wird
bzurü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);Aufgabe
EinfachErstellen Sie ein Programm, das mithilfe des Bedingungsoperators prüft, ob eine Zahl positiv, negativ oder null ist. Das Programm soll:
- Eine Ganzzahl vom Benutzer entgegennehmen.
- Den Bedingungsoperator verwenden, um zu bestimmen, ob die Zahl positiv, negativ oder null ist.
- 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;
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Fundamentals
4Kontrollfluss
If-AnweisungIf - ElseElse-IfSwitch CaseTernärer BedingungsoperatorRecap-ChallengeVerschachteltes If - Else2Variablen
DatentypenIntegerFloat - DoubleZeichenBooleansKonstantenprintf GrundlagenBenennungsregeln für VariablenType Casting Teil 1Type Casting Teil 2Wiederholungs-Challenge3Operatoren
Arithmetische OperatorenModulo-OperatorInkrement/DekrementZuweisungsoperatorenRelationale OperatorenLogische Operatoren Teil 1Logische Operatoren Teil 2Logische Operatoren Teil 3Wiederholungs-Challenge