Sdílet prostřednictvím


Podmínečný operátor:? :

expression ? expression : expression

Poznámky

Podmínečný operátor (? :) je ternární operátor (má tři operandy).Podmínečný operátor funguje takto:

  • První operand implicitně převeden na bool.Je vyhodnocena a před pokračováním jsou dokončeny všechny vedlejší účinky.

  • Pokud je prvním operandem vyhodnocen jako true (1), druhý operand je vyhodnocena.

  • Pokud je prvním operandem vyhodnocen jako false (0), třetí operand je vyhodnocena.

Výsledek Podmínečný operátor je v důsledku toho operand je vyhodnocena – druhý nebo třetí.Podmíněný výraz je vyhodnocován pouze jeden poslední dva operandy.

Podmíněné výrazy mají asociativitu zleva doprava.První operand musí být typu integrál nebo ukazatel.Na druhé a třetí výrazy platí následující pravidla:

  • Pokud jsou oba výrazy stejného typu, je výsledkem tohoto typu.

  • Pokud jsou oba výrazy aritmetický nebo výčet typů obvyklých aritmetických převody (v Aritmetické převody) jsou prováděny převést společného typu.

  • Pokud jsou oba výrazy typu ukazatele nebo jeden typ ukazatele a druhý je konstantní výraz, který je vyhodnocován na hodnotu 0, jsou prováděny převody ukazatel převést společného typu.

  • Pokud jsou oba výrazy typu odkaz, jsou prováděny převody referenčních převést společného typu.

  • Pokud jsou oba výrazy typu void, je společný typ typu void.

  • Pokud jsou oba výrazy typu dané třídy, je společný typ typu třída.

Jakékoli kombinace operandy druhé a třetí v předchozím seznamu jsou nelegální.Typ výsledku je běžným typem a je l hodnota, pokud jsou oba operandy druhé a třetí jsou stejného typu a obě hodnoty l.

Příklad

// 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;
}

Viz také

Referenční dokumentace

Operátory C++

Přednost a asociativita operátorů

Koncepty

Podmíněný výraz operátor