
Robin Rodricks
Ich habe mich immer gefragt, wie man das schreibt "A ? B : C"
Syntax in einer C++-kompatiblen Sprache.
Ich denke, es funktioniert ungefähr so: (Pseudocode)
If A > B
C = A
Else
C = B
Kann mir bitte ein erfahrener C++-Programmierer helfen?

lc.
Es funktioniert so:
(condition) ? true-clause : false-clause
Es wird am häufigsten in Zuweisungsoperationen verwendet, obwohl es auch andere Verwendungen hat. Der ternäre Operator ?
ist eine Möglichkeit, eine if-else-Klausel abzukürzen, und wird in anderen Sprachen auch als unmittelbare if-Anweisung bezeichnet (IIf(condition,true-clause,false-clause)
in VB zum Beispiel).
Zum Beispiel:
bool Three = SOME_VALUE;
int x = Three ? 3 : 0;
ist das gleiche wie
bool Three = SOME_VALUE;
int x;
if (Three)
x = 3;
else
x = 0;
Es funktioniert so:
expression ? trueValue : falseValue
Was im Grunde bedeutet, dass wenn expression
zu true ausgewertet wird, wird trueValue zurückgegeben oder ausgeführt, und falseValue wird zurückgegeben oder ausgewertet, wenn dies nicht der Fall ist.
Denken Sie daran, dass trueValue und falseValue nur dann ausgewertet und ausgeführt werden, wenn der Ausdruck wahr bzw. falsch ist. Dieses Verhalten wird als Kurzschluss bezeichnet.
In c++ gibt es keinen tatsächlichen if-Teil davon. Er wird als ternärer Operator bezeichnet. Es wird wie folgt verwendet: ? : ; Für dein obiges Beispiel würde das so aussehen:
C = A > B ? A : B;
Dieser Artikel auf Wikipedia diskutiert es auch:
http://en.wikipedia.org/wiki/Ternary_operation
Ich nehme an, du meinst Sachen wie a = b ? c : d, wobei b die Bedingung ist, c der Wert ist, wenn b wahr ist, und d der Wert ist, wenn b falsch ist.
ich würde sagen die ? ist eine Abkürzung. Einige “Hard-Core”-Programmierer neigen jedoch dazu zu sagen, schreiben Sie es auf lange Sicht, damit die Leute in zukünftigen Fällen Code leicht lesen und ändern können.
Zum Beispiel, wenn Sie schreiben
int a = b<c ? b : c;
Einige Leute behaupten, es sei klarer zu schreiben:
if(b<c)
a = b;
else
a = c;
Denn in zukünftigen Fällen können sich Menschen damit anstecken. Natürlich ist ein einfaches b

Robin Hsu
Niemand scheint zu erwähnen, dass ein Ergebnis eines Bedingungsoperatorausdrucks ein L-Wert in C++ sein kann (aber nicht in C). Der folgende Code lässt sich in C++ kompilieren und läuft gut:
int a, b;
bool cond;
a=1; b=2; cond=true;
(cond? a : b) = 3;
cout << a << "," << b << endl;
Das obige Programm gibt 3, 2 aus
Wenn a und b jedoch von unterschiedlichem Typ sind, wird es nicht funktionieren. Der folgende Code gibt einen Compilerfehler aus:
int a;
double b;
bool cond;
a=1; b=2; cond=true;
(cond? a : b) = 3;
cout << a << "," << b << endl;

HARTER BAJPAI
ES IST GANZ EINFACH. ES IST DIE BASISSYNTAX: Ausdruck1?Ausdruck2:Ausdruck3;
Wenn Ausdruck 1 wahr ist, gilt Ausdruck 2, andernfalls gilt Ausdruck 3.
Beispiel:
hey=24>2?24:34;
hier, da die Bedingung wahr ist, wird ihr der Wert 24 zugewiesen. Wenn es falsch war, wird ihm 34 zugewiesen
9901300cookie-checkWie verwende ich den bedingten (ternären) Operator?yes