Правила программирования на Си и Си++

Операция ?: не то же самое, что и оператор 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 ;



Содержание раздела