Heim > häufiges Problem > Hauptteil

Was ist der ternäre Operator?

爱喝马黛茶的安东尼
Freigeben: 2019-07-30 16:19:50
Original
27348 Leute haben es durchsucht

Was ist der ternäre Operator?

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;
Nach dem Login kopieren

kann mit dem folgenden Bedingungsoperator

min=(a<b)?a:b;
Nach dem Login kopieren

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;
Nach dem Login kopieren

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)?&#39;Y&#39;:&#39;N&#39;
(d=b*b-4*a*c)>=0?sqrt(d):sqrt(-d)
ch=(ch>=&#39;A&#39;&&ch<=&#39;Z&#39;)?(ch+32):ch
Nach dem Login kopieren

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
Nach dem Login kopieren

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)
Nach dem Login kopieren

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");
Nach dem Login kopieren

kann nicht geschrieben werden als:

(a%2==0)?printf("even/n"):printf("odd/n");
Nach dem Login kopieren

, sondern kann durch die folgende Anweisung ersetzt werden:

printf("%s/n",(a%2==0?"even":"odd");
Nach dem Login kopieren

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 <= &#39;Z&#39; && ch >= &#39;A&#39; ? &#39; @ &#39; : ch ;
  putchar(c1);
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage