vitalik_1984 писал(а):вот так и рождаются лишние посты.IfoR я же попросил написать в каких случаях можно использовать.а не приводить кучу непонятных примеров.примеры то есть в книге.а из описания только то что это тернарный оператор.
вы бы лучше написали логику работы,а мы бы уже думали в каком виде его применять.
результатом работы операции
expr ? expr_1 : expr_2; является одно из двух значений: если значение
expr не равно нулю, то результатом будет значение выражения
expr_1, в противном случае
expr_2.
по смыслу это очень похоже на действие оператора
if, но с одной оговоркой: оператор
if не создает значения, т.е. невозможно присвоить переменной значение оператора
if, а
операция ? - возвращает результат. сравните:
и
Код: Выделить всё
int var;
if(a < b)
var = 12;
else
var = b + c;
мне кажется, тут сыграла роль одна тонкость перевода стандарта Си:
? - это ОПЕРАЦИЯ, т.е. действие, порождающее ЗНАЧЕНИЕ, а не ОПЕРАТОР, т.е. действие, не порождающее значение. видимо, при переводе однажды кто-то счел возможным подменить смысл слова ОПЕРАЦИЯ смыслом слова ОПЕРАТОР, и с тех пор и покатило...
+= это ОПЕРАЦИЯ,
for - это ОПЕРАТОР. и т.
битва с дураками проиграна, победители торжествуют. слава победителям!