Условный или тернарный оператор (? :) в C / C ++
Условный оператор похож на оператор if-else, поскольку он следует тому же алгоритму, что и оператор if-else, но условный оператор занимает меньше места и помогает писать операторы if-else как можно более коротким способом.
Синтаксис:
Условный оператор имеет вид
переменная = Выражение1? Выражение2: Выражение3
Это можно представить в виде оператора if-else как:
если (Выражение1) { переменная = Выражение2; } еще { переменная = Выражение3; }
Поскольку условный оператор '?:' Требует для работы трех операндов, их также называют тернарными операторами .
Работающий:
Здесь Expression1 - это условие, которое необходимо оценить. Если условие ( Выражение1 ) истинно, Выражение2 будет выполнено, и будет возвращен результат. В противном случае, если условие ( Выражение1 ) ложно, то Выражение3 будет выполнено, и будет возвращен результат.
Пример: программа для сохранения наибольшего из двух чисел.
C
// C program to find largest among two // numbers using ternary operator #include <stdio.h> int main() { int m = 5, n = 4; (m > n) ? printf ( "m is greater than n that is %d > %d" , m, n) : printf ( "n is greater than m that is %d > %d" , n, m); return 0; } |
C ++
// C++ program to find largest among two // numbers using ternary operator #include <iostream> using namespace std; int main() { // variable declaration int n1 = 5, n2 = 10, max; // Largest among n1 and n2 max = (n1 > n2) ? n1 : n2; // Print the largest number cout << "Largest number between " << n1 << " and " << n2 << " is " << max; return 0; } |
m больше n, то есть 5> 4