С++ для начинающих

Условное выражение


Условное выражение, или оператор выбора, предоставляет возможность более компактной записи текстов, включающих инструкцию if-else. Например, вместо:

bool is_equal;

if (!strcmp(str1,str2)) is_equal = true;

else                    is_equal = false;

можно употребить более компактную запись:

bool is_equa1 = !strcmp( strl, str2 ) ? true : false;

Условный оператор имеет следующий синтаксис:

expr11 ? expr2 : expr3;

Вычисляется выражение expr1. Если его значением является true, оценивается expr2, если false, то expr3. Данный фрагмент кода:

int min( int ia, int ib )

{ return ( ia < ib ) ? ia : ib; }

эквивалентен

int min(int ia, int ib) {



  if (ia < ib)

    return ia;

  else

    return ib;

}

Приведенная ниже программа иллюстрирует использование условного оператора:

#include <iostream>

int main()

{

   int i = 10, j = 20, k = 30;

   cout << "Большим из "

        << i << " и " << j << " является "

        << ( i > j ? i : j ) << end1;

   cout << "Значение " << i

        << ( i % 2 ? " нечетно." : " четно." )

        << endl;

/* условный оператор может быть вложенным,

 * но глубокая вложенность трудна для восприятия.

 * В данном примере max получает значение

 * максимальной из трех величин

 */

    int max = ( (i > j)

        ? (( i > k) ? i : k)

        : ( j > k ) ? j : k);

    cout << "Большим из "

         << i << ", " << j << " и " << k

         << " является " << max << endl;

}

Результатом работы программы будет:

Большим из 10 и 20 является 20

Значение 10 четно.



Содержание раздела