Das ist der bedingte Operator .
Der Ausdruck a ? b : c
wird als b
ausgewertet, wenn a
wahr ist und c
wenn a
ist false
.
In den meisten Sprachen ist dies das einzige Beispiel für einen ternären Operator, ein Operator, der drei Argumente benötigt.
(Als nerviger Nitpicker: Aus irgendeinem Grund, trotz der Tatsache, dass die Frage die Anweisung betrifft, geben die meisten Leute Antworten auf den Operator .)
Erstens, was Sie in Ihrem Beispiel haben, ist in der Tat eine Anweisung . Es wird eine -Ausdruckanweisung genannt. Es gibt verschiedene Arten von Anweisungen in C ++ (Deklarationsanweisung, Sprunganweisung, Iterationsanweisung usw.), und diese ist eine Ausdrucksanweisung. Also, wenn Ihre Frage in der Tat ist, was für eine Anweisung das ist, wäre die pedantisch korrekte Antwort: Es ist eine Ausdruckserklärung . Ende der Geschichte.
Wenn Sie nun tiefer gehen möchten, möchten Sie vielleicht den Ausdruck aussortieren, der in diesem Ausdruck verwendet wird. Der Ausdruck hat in diesem Fall einen bedingten Operator ?:
auf der obersten Ebene. Der erste Operand für diesen Operator ist ein Unterausdruck, der einen relationalen Operator >
verwendet ... und so weiter.
Was sind diese Art von Aussagen in C ++ genannt:
Sie haben eine Frage mit mehreren Antworten gestellt. Technisch gesehen hängt es von der tatsächlich verwendeten Sprache ab, aber das, was Sie gezeigt haben, ist typisch für eine große Anzahl von Sprachen, die eine gemeinsame Syntax haben.
Statements sind nur eine Möglichkeit, einen Tokenblock anzuzeigen, der als eine Einheit betrachtet werden kann. Anweisungen enden normalerweise mit einem Semikolon ";". Einige Anweisungen sind einfach wie
%Vor%hat ein Schlüsselwort und ein Literal, während andere komplexer sind wie
%Vor%mit einer Zuweisung, die von einem Rückgabeunterausdruck und einem arithmetischen Unterausdruck umfasst ist, einem Funktionsaufruf mit einer Argumentauflösung, die einen Multiplikationsunterausdruck mit einem Variablennachschlag als einen der Operanden enthält.
Ihre Aussage ist das Ergebnis eines Ausdrucks.
%Vor%Der bedingte Operator wird manchmal als "Ternärer Operator" bezeichnet. Es hat einen Operator und drei (daher ternäre) Operanden.
%Vor%Die Ergebnisse von Exp1 oder Exp2 werden als Wert des bedingten Operatorausdrucks zurückgegeben, Exp1, wenn "Bedingung" wahr ist, andernfalls Exp2.
Der Conditional (ternary) Operator ist den Codern aus verschiedenen Gründen vielleicht nicht so vertraut.
Einer seiner typischen Verwendungszwecke ist die Vereinfachung von Code, wenn wir basierend auf bestimmten Bedingungen verschiedene Dinge zurückgeben möchten.
Zum Beispiel gegeben
%Vor%können wir einfach ein Divisionsergebnis in einer Zeile zurückgeben
%Vor%Wir könnten einfach die Rückgabe mit dem Ausdruck
erstellen %Vor%Aber wir wollen uns vor einer Division durch Null schützen. Mit einem if / else-Block wäre Code Bloat.
%Vor% Nach ternär oder nicht ternär?
Welchen Codierungsstil verwenden Sie für den ternären Operator?
Ist das eine vernünftige Verwendung des ternären Operators?
Es ist ein Ausdruck mit einem ternären (oder bedingten) Operator.
Tags und Links c++ conditional-operator