Условный оператор ? позволяет кратко записать условие проверки. Соответствующие действия выполняются в зависимости от вычисленного значения выражение_условие\ истина или ложь. Этот оператор можно использовать вместо эквивалентного оператора if-else. Синтаксис условного оператора:
Оператор ? иногда называют троичным оператором, так как он требует трех операндов. Рассмотрим такой оператор:
if (fvalue >= 0.0)
fvalue = fvalue;
else
fvalue = -fvalue;
Этот оператор можно записать при помощи условного оператора?:
fvalue=(fvaiue >= 0.0) ? fvaiue : — fvalue;
Оба оператора определяют абсолютное значение fvalue. Приоритет условного оператора ниже любого другого, используемого в выражении; поэтому в данном примере круглые скобки не нужны. Но скобки часто используются для лучшего восприятия программы.
В следующей программе на C++ оператор ? используется для сложного форматирования программного вывода:
#include <math.h> // для определения макроса abs
#include <iostream.h>
main()
{ float fbalance, fpayment;
// Введите размер вашей ссуды
cout << "Enter your loan balance: ";
cin >> fbalance;
// Укажите, сколько выплачено по ссуде
cout << "\nEnter your loan payment amount: ";
cin >> fpayment;
// В настоящий момент вы
cout << "\n\nYou have "; // переплатили / выплатили
Первый условный оператор используется в программе в операторе cout для определения строки, выводимой на печать: "overpaid by $" или "paid $". В следующем условном операторе вычисляется и печатается соответствующее значение денежного эквивалента.
Заменяет многократно разветвленный оператор if else.
switch(<выражение>)
{ case метка 1:
<оператор 1 или группа операторов 1>;
case метка 2:
<оператор 2 или группа операторов 2>;
case метка n:
<оператор n или группа операторов n>;
default: <оператор или группа операторов>;
}
После вычисления выражения в заголовке оператора, его результат последовательно сравнивается с методами, начиная с самого верхнего, пока не будет установлено их соответствие. Тогда выполняются операторы внутри соответствующего case. Управление передается на следующие операторы, и проверки продолжаются. В конце каждой последовательности операторов должен присутствовать оператор break - выход из оператора switch.
Метка default (умолчание) может отсутствовать, но если она есть, то выполняется в том случае, когда не выполнено ни одно из case.
Пример:
Вводится количество листов в приложение. Нужно напечатать лист, листа или листов в зависимости от числа. Например: 21 лист, 33 листа, 200 листов.