Detaillierte Erläuterung des ternären Operators
Für einige Auswahlzweigstrukturen können stattdessen einfache bedingte Operatoren verwendet werden. Beispiel:
if(a<b) min=a; else min=b;
kann mit dem folgenden Bedingungsoperator
min=(a<b)?a:b;
verarbeitet werden, wobei „(a
Der bedingte Operator besteht aus zwei Symbolen „?“ und „:“ Er erfordert drei Bedienobjekte und wird daher auch als ternärer Operator bezeichnet. Er ist der einzige ternäre Operator in der C-Sprache. Operator.
Seine allgemeine Form ist:
表达式1?表达式2:表达式3;
Im Folgenden finden Sie einige Hinweise zu bedingten Operatoren:
(1) Ausdruck 1 ist ein relationaler Ausdruck Ausdruck oder logischer Ausdruck, der zur Beschreibung von Bedingungen verwendet wird. Ausdruck 2 und Ausdruck 3 können Konstanten, Variablen oder Ausdrücke sein. Zum Beispiel:
(x==y)?'Y':'N' (d=b*b-4*a*c)>=0?sqrt(d):sqrt(-d) ch=(ch>='A'&&ch<='Z')?(ch+32):ch
Bei den oben genannten handelt es sich ausschließlich um zulässige bedingte Ausdrücke.
Verwandte Empfehlungen: "FAQ"
(2) Ausführungsreihenfolge: Lösen Sie zuerst Ausdruck 1, wenn der Wert nicht 0 ist, bedeutet dies die Bedingung wahr ist, dann finden Sie Ausdruck 2. Zu diesem Zeitpunkt wird der Wert von Ausdruck 2 als Wert des gesamten bedingten Ausdrucks verwendet.
Wenn der Wert von Ausdruck 1 0 ist, bedeutet dies: Die Bedingung ist falsch, dann lösen Sie den Ausdruck 3. Der Wert des Ausdrucks 3 ist der Wert des gesamten bedingten Ausdrucks. Zum Beispiel:
(a>=0)?a:-a Das Ausführungsergebnis ist der absolute Wert von a
(3) Im Programm durch Setzen Der bedingte Ausdruck Der Wert wird direkt einer Variablen zugewiesen. Beispiel:
min=(a
(4) Die Priorität bedingter Ausdrücke ist nur höher als die des Zuweisungsoperators, aber niedriger als alle zuvor angetroffenen Operatoren.
Daher sind min=(a
(5 ) Bedingung Die Kombinationsrichtung der Operatoren ist „von rechts nach links“.
(6) Bedingte Ausdrücke dürfen verschachtelt werden, das heißt, Ausdruck 2 und Ausdruck 3 im bedingten Ausdruck dürfen ein anderer bedingter Ausdruck sein. Zum Beispiel:
x>0?1:x<0?-1:0
Im obigen bedingten Ausdruck ist der 3. Teil des Ausdrucks ein weiterer bedingter Ausdruck. Entsprechend der Assoziativität des bedingten Ausdrucks entspricht der obige bedingte Ausdruck:
x>0?1:(x<0?-1:0)
Seine Funktion besteht darin, das Vorzeichen von x zu bestimmen. Wenn x eine positive Zahl ist, ist der Wert des bedingten Ausdrucks 1; wenn x eine negative Zahl ist, ist der Wert des bedingten Ausdrucks -1; wenn x 0 ist, ist der Wert des bedingten Ausdrucks 0.
(7) Der bedingte Ausdruck kann die if-Anweisung nur ersetzen, wenn die in die if-Anweisung eingebettete Anweisung eine Zuweisungsanweisung ist (und beide Zweige derselben Variablen Werte zuweisen). Zum Beispiel:
if(a%2==0) printf("even/n"); else printf("odd/n");
kann nicht geschrieben werden als:
(a%2==0)?printf("even/n"):printf("odd/n");
, sondern kann durch die folgende Anweisung ersetzt werden:
printf("%s/n",(a%2==0?"even":"odd");
Die Funktion dieser Anweisung ist: if a ist eine gerade Zahl, Ausgabe gerade; Wenn a eine ungerade Zahl ist, Ausgabe ungerade.
(8) Die Arten von Ausdruck 1, Ausdruck 2 und Ausdruck 3 können unterschiedlich sein. Zu diesem Zeitpunkt ist der Werttyp des bedingten Ausdrucks der höhere Typ unter ihnen. Zum Beispiel:
main() { char c1, ch; ch = getchar(); c1 = ch <= 'Z' && ch >= 'A' ? ' @ ' : ch ; putchar(c1); }
Die Funktion dieses Programms besteht darin, ein beliebiges Zeichen über die Tastatur einzugeben und festzustellen, ob es sich um einen Großbuchstaben handelt. Andernfalls wird die Ausgabe wie im obigen Beispiel ausgeführt Zeile 6 des Programms ist die Schlüsselanweisung. Diese Anweisung realisiert die Beurteilung, Auswahl und Ersetzung von Eingabezeichen.
Der Ausführungsprozess ist: Zuerst beurteilt und wählt der Bedingungsoperator auf der rechten Seite der Zuweisungsnummer in dieser Anweisung die Eingabezeichen aus. Wenn ch>='A'&&ch<='Z' wahr ist, Erklären Sie, dass ch ein englischer Großbuchstabe ist. Wählen Sie daher zu diesem Zeitpunkt @ aus. Andernfalls wählen Sie weiterhin das ursprüngliche Zeichen ch aus und weisen Sie dann das ausgewählte Ergebnis der ursprünglichen Variablen ch zu.
Das obige ist der detaillierte Inhalt vonWas ist der ternäre Operator?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!