Операция ?: не то же самое, что и оператор if/else
Последняя строка в таблице 1 относится к другому спорному вопросу. Условная операция — это простой оператор. Она используется лишь в выражении и передает значение. Условная операция является не очень привычной заменой для оператора
if/else, но не менее, чем операции или || приемлемы для замены простого if. Хотя большинство людей и не принимают во внимание замену:
if( z )
i = j;
else
i = k;
на:
z (i = j);
z || (i = k);
Мне довелось случайно увидеть подобное этому, но с использованием условной операции:
z ? (i = j) : (i = k) ;
Все предыдущие фрагменты в равной мере способны сбить с толку. Следующий код показывает, как надлежащим образом использовать условную операцию, и ее результат яснее (т.е. лучше), чем у равноценного оператора if/else:
i = z ? j : k ;