Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Оператор ?:
Для проверки условия вместо оператора if
можно использовать оператор ?:
. Оператор имеет следующий формат:
<Переменная> = <Логическое выражение> ? <Выражение если Истина> :
<Выражение если Ложь>;
Если логическое выражение возвращает значение true
, то выполняется выражение, расположенное после вопросительного знака. Если логическое выражение возвращает значение false
, то выполняется выражение, расположенное после двоеточия. Результат выполнения выражений становится результатом выполнения оператора. Пример проверки числа на четность и вывода результата:
int x = 10;
std::cout << x
<< ((x % 2 == 0) ? " - четное число" : " - нечетное число");
Обратите внимание на то, что в качестве операндов указываются именно выражения, а не инструкции. Кроме того, выражения обязательно должны возвращать какое-либо значение, причем одинакового типа. Так как оператор возвращает значение, его можно использовать внутри выражений:
int x, y;
x = 0;
y = 30 + 10 / (!x ? 1 : x); // 30 + 10 / 1
std::cout << y << std::endl; // 40
x = 2;
y = 30 + 10 / (!x ? 1 : x); // 30 + 10 / 2
std::cout << y << std::endl; // 35
В качестве операнда можно указать функцию, которая возвращает значение:
int func1(int x) {
std::cout << x << " - четное число" << std::endl;
return 0;
}
int func2(int x) {
std::cout << x << " - нечетное число" << std::endl;
return 0;
}
// ... Фрагмент опущен ...
int x = 10;
(x % 2 == 0) ? func1(x) : func2(x);
Как видно из примера, значение, возвращаемое оператором, можно проигнорировать.
Помощь сайту
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов