Я так вижу, что либо вы не читали либо не поняли моих объяснений.
Попробую более подробно разъяснить.
Смысл, то в том, что когда от выражения требуется вернуть значение, то:
- понятно его назначение- что должно быть результатом отражено явно
- исходя из понимания что вернется можно предположить как там что реализованно не заглядывая внутрь
- некоторые программисты следят за тем чтобы такие выражения просто вычисляли значение, но не меняли бы состояние объектов
Все это в сумме дает более понимаемый код ("читается"- это я не совсем точно написал).
То есть:
X++:
switch(value)
{
case cond1 : action1
case cond2 : action2
default : default_action
}
здесь надо разобраться как работает каждый action, плохо то, что такой стиль требует модификацию объектов внутри action'ов.
X++:
result= cond1 ? result1
: cond2 ? result2
: default_result;
здесь будет хоть чуть-чуть но проще потому, что одним измерением стало меньше- известен тип результата который вернется
То же и с функциями. Если функция void, то есть основания для беспокойства- внутри нее 100% изменяется состояние объектов, а иначе она не была бы void. Если не void то немного проще потому, что наперед известно чем все закончится.