Как называется эта конструкция кода: условие? true_expression: false_expression - PullRequest
6 голосов
/ 18 января 2012

Какой правильный термин / название для следующей конструкции:

string myString = (boolValue==true ? "true": "false");

Ответы [ 9 ]

15 голосов
/ 18 января 2012

Это троичное условное выражение.

10 голосов
/ 18 января 2012

В стандартах C, C ++, C # и Java используются следующие термины:

  • Оператор является условным оператором .
  • Такое выражение условное выражение .

Так что это официальные названия.Программисты часто более свободно называют его как троичный оператор , поскольку это единственный широко используемый оператор с 3 операндами.Строго говоря, это всего лишь a троичный оператор.

6 голосов
/ 18 января 2012

Оператор ?: является «условным оператором».

boolValue==true ? "true": "false", следовательно, является условным выражением.

myString = (boolValue==true ? "true": "false") является условным выражением, которое также имеет присваивание.

string myString = (boolValue==true ? "true": "false"); - это оператор, который использует условное выражение в объявлении и присваивании.

?: часто называют «троичным оператором».Строго говоря, это только троичный оператор a , но поскольку он является единственным в этих языках, то ссылка на троичный оператор действительна, хотя он применяет метку, основанную на факте, отдельном от его внутреннегоопределение.Там, где мы добавляем оператор к языку, подобному x § y ¶ z, который принимает все три из x, y и z в качестве операндов, тогда это также будет троичный оператор, и хотя условный оператор все равно будет троичный оператор, он больше не будет троичный оператор.

5 голосов
/ 18 января 2012

Это называется троичным условным оператором . Однако я не знаю, имеют ли выражения, использующие его, конкретное имя.

Надеюсь, это поможет!

2 голосов
/ 18 января 2012

Я не уверен, является ли это распространенным языком в сообществе C #, но в C и C ++ многие люди обычно называют это троичным оператором . Почему?

  • Есть унарные операторы, которые ожидают один операнд, как в -x.
  • Есть бинарные операторы, которые ожидают два операнда, как в x+x.
  • Существует только один троичный оператор, который ожидает три операнда, как в x?y:z.

«Правильным» именем является «условный оператор», поскольку результат зависит от условия (самый левый операнд).

1 голос
/ 18 января 2012

Это условное выражение .

Для удобства чтения поставьте сложное условие в скобки:

string myString = (somecond)?"true":"false";

В вашем случае просто протестируйте boolValue с помощью

string MyString = boolValue?"true":"false".
1 голос
/ 18 января 2012

Это условное выражение, но когда вы используете "?"называется «Условный оператор».

1 голос
/ 18 января 2012

Я думаю, что это называется "троичный оператор".

0 голосов
/ 18 января 2012

Это называется «троичный», и, насколько я помню, когда я изучал Java (11/12 лет назад), вы не могли этого сделать ИЛИ по крайней мере, учителя вообще не учили этому Может быть, потому, что иногда код менее читабелен ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...