#c #conditional-statements
#c #условные операторы
Вопрос:
Могу ли я создать условное выражение с несколькими другими, если:
Случайное условие:
int number = 50;
if (number > 23) cout << "The variable number is greater then 23 " << endl;
else cout << "23 is greater then variable number" << endl;
Условное выражение:
int number = 50;
cout << (number > 23 ? "The variable number is greater then 23 " : "23 is greater then variable number")<< endl;
Можно ли добавить больше «else if» в этом втором случае или можно добавить только одно условие, состоящее из «if и else»
Ответ №1:
Подобно an else if
, вы могли бы просто использовать случай else другим условным:
condition1 ? val1 :
condition2 ? val2 :
condition3 ? val3 :
val4
что эквивалентно
if (condition1)
val1
else if (condition2)
val2
else if (condition3)
val3
else
val4
Ответ №2:
Нет, нет способа иметь else-if во встроенном условном (‘?:’ синтаксисе). Возможно, вы могли бы подойти к этому с помощью вложенных ‘?: s’ со скобками, но это было бы некрасиво.
Редактировать: глядя на другой ответ, я думаю, вы можете, и это не так уж и некрасиво! Но я не видел этого шаблона на практике.
Комментарии:
1. «Но я не видел этого шаблона на практике». Вероятно, вы это сделаете. Я часто видел это в разных компаниях и разных проектах.
2. Тогда, вероятно, это справедливо. Я в основном работал на Java, где, я думаю, для этого шаблона были бы необходимы круглые скобки, и в этом случае я думаю, что мой ответ остается в силе! Но вопрос был о C , и я работал только над одним крупным проектом на C .