В соответствии с таблицами приоритетов C тернарный условный оператор имеет правоотносную ассоциацию .Еще один Условный оператор, вложенный в вопрос
Итак, он напрямую конвертируется в эквивалентную лестницу if-else?
Например, Can:
x?y?z:u:v;
быть просто интерпретировать как:
if(x)
{
if(y)
{ z; }
else
{ u; }
}
else
{ v; }
по Совмещение еще (:) с ближайшим непарный, если()? Или же ассоциативность справа налево подразумевает какую-то другую договоренность?
+1 хотя я бы сказал, даже wiser * not * для установки условных операторов в реальном коде производства :-) –
@ Péter Török: Согласен! – Ray
Я думаю, что «не используется» переоценено. Замените '?' На 'then' и': 'на' else', и у вас есть вполне допустимый синтаксис выбора на нескольких языках. Я все время пишу вложенные условные обозначения, убедившись, что каждый новый? и: появляется на новой строке с правильным отступом. Это так же читаемо, как и любые блоки if/else. –