Udostępnij za pośrednictwem


Operator warunkowy:? :

expression ? expression : expression

Uwagi

Operator warunkowy (? :) jest trójargumentowy (ma trzy operandy).Operator warunkowy działa w następujący sposób:

  • Pierwszy operand jest niejawnie konwertowane na bool.Sprawdzana jest zgodność i wszystkie efekty uboczne są wypełnione przed kontynuowaniem.

  • Jeśli wynikiem pierwszego operandu true (1), drugi operand jest oceniane.

  • Jeśli wynikiem pierwszego operandu false (0), trzeci argument jest oceniane.

Wynik operator warunkowy jest wynikiem jest oceniane niezależnie od operandu — drugi lub trzeci.Tylko jeden z ostatnich dwóch operandach jest oceniany w wyrażeniu warunkowym.

Wyrażenia warunkowe mieć łączność od prawej do lewej.Pierwszy operand musi być typu Całka lub wskaźnik.Następujące zasady stosuje się do drugiego i trzeciego wyrażeń:

  • Jeśli oba wyrażenia są tego samego typu, to wynik jest tego typu.

  • Jeśli oba wyrażenia są typy operacji arytmetycznych lub wyliczanie zwykłymi konwersje arytmetycznych (omówione w Arytmetyczne konwersje) są wykonywane w celu przekonwertowania ich na wspólne typu.

  • Jeśli oba wyrażenia są typami wskaźników lub jeśli jest jeden typ wskaźnika, a druga jest wyrażenie stałe, którego wynikiem jest 0, wskaźnik zestawami ich konwersja na typ wspólne.

  • Jeśli oba wyrażenia są typy odwołań, odniesienia są zestawami ich konwersja na typ wspólne.

  • Jeśli oba wyrażenia są typu void, typ wspólnej jest typu void.

  • Jeśli oba wyrażenia są typu danej klasy, wspólne typu jest tego typu klasy.

Dowolnej kombinacji operandy drugiego i trzeciego w powyższej listy nie są dozwolone.Typ wynik jest typu wspólne i jest wartością l, jeśli oba operandy drugi i trzeci są tego samego typu i są obie wartości l.

Przykład

// expre_Expressions_with_the_Conditional_Operator.cpp
// compile with: /EHsc
// Demonstrate conditional operator
#include <iostream>
using namespace std;
int main() {
   int i = 1, j = 2;
   cout << ( i > j ? i : j ) << " is greater." << endl;
}

Zobacz też

Informacje

Operatory języka C++

Priorytet i łączność operatorów

Koncepcje

Operator wyrażenia warunkowe