Найдите Условный оператор в Wiktionary, бесплатном словарь. |
Условный оператор поддерживается во многих языках программирования. Этот термин обычно относится к ?:
как в C, C ++, C #, Python и JavaScript. Однако в Java этот термин может также относиться к и
||
.
В некоторых языках программирования, например В Java термин условный оператор относится к логическим операторам короткого замыкания и
||
. Второе выражение оценивается только тогда, когда первого выражения недостаточно для определения значения всего выражения.
и
|
- это побитовые операторы, что встречается во многих языках программирования. Основное отличие состоит в том, что поразрядные операции работают с отдельными битами двоичного числа, тогда как условные операторы работают с логическими операциями. Кроме того, всегда будут оцениваться выражения до и после побитового оператора.
if (expression1 || expression2 || expression3)
Если выражение 1 истинно, выражения 2 и 3 НЕ будут проверяться.
if (expression1 | expression2 | expression3)
Будет проверено выражение 2 и 3, даже если 1 уже верно.
Операторы короткого замыкания могут сократить время выполнения, избегая вызова более поздних функций. Они также могут избежать исключения Null Exception, если выражение 1 проверяет, действителен ли объект.
class ConditionalDemo1 {public static void main (String args) {int value1 = 1; int значение2 = 2; if ((значение1 == 1) (значение2 == 2)) System.out.println ("значение1 равно 1 И значение2 равно 2"); if ((значение1 == 1) || (значение2 == 1)) System.out.println ("значение1 равно 1 ИЛИ значение2 равно 1"); }}
В большинстве языков программирования ?: называется условным оператором. Это тип тернарного оператора, в то время как тернарный оператор в большинстве случаев означает конкретно ?:, потому что это единственный оператор, который принимает три операнда.
?:
используется в условных выражениях. Программисты могут переписать выражение if-then-else в более сжатой форме, используя условный оператор.
condition? выражение 1: выражение 2
условие: выражение, которое оценивается как логическое значение.
выражение 1, выражение 2: выражения со значениями любого типа.
Если условие оценивается как истинное, выражение 1 будет оценено. Если условие оценивается как ложное, выражение 2 будет оценено.
Его следует читать как: «Если условие истинно, присвоить значение выражения 1 результату. В противном случае присвоить значение выражения 2 результату».
Условный оператор является правоассоциативным, что означает, что операции группируются справа налево. Например, выражение формы? до н.э ? d: e оценивается как a? b: (c? d: e).
class ConditionalDemo2 {public static void main (String args) {int value1 = 1; int значение2 = 2; int результат; логическое someCondition = true; result = someCondition? значение1: значение2; System.out.println (результат); }}
В этом примере, поскольку someCondition истинно, эта программа выводит на экран "1". Используйте оператор?: Вместо оператора if-then-else, если он делает ваш код более читабельным; например, когда выражения компактны и не имеют побочных эффектов (таких как присваивания).
#includeint main () {int x = 1; int y = 2; std :: cout << ( x>y? x: y) << " is the greater of the two." << std::endl; }
Есть несколько правил, которые применяются ко второму и третьему операндам в C ++:
// условие? первое_выражение: второе_выражение; статический двойной sinc (двойной x) {return x! = 0.0? Математический синтаксис (x) / x: 1.0; }
Есть несколько правил, которые применяются ко второму и третьему операндам в C #:
var age = 26; var drink = (возраст>= 21)? «Пиво»: «Сок»; console.log (напиток); // "Пиво"
Условный оператор JavaScript совместим со следующими браузерами:
Chrome, Edge, Firefox (1), Internet Explorer, Opera, Safari, Android webview, Chrome для Android, Edge Mobile, Firefox для Android (4), Opera для Android, Safari на IOS, Samsung Internet, Node.js.
Тернарный оператор является правоассоциативным, это означает, что его можно "связать" следующим образом, аналогично цепочке if... else if... else if... else.
пример функции (…) {return condition1? значение1: условие2? значение2: условие3? значение3: значение4; } // Эквивалентно: function example (…) {if (condition1) {return value1; } еще если (условие2) {возвращаемое значение2; } еще если (условие3) {возвращаемое значение3; } else {возвращаемое значение4; }}
const double a = expression1? a1: выражение2? a2: выражение3? a3: / * иначе * / a4; // Эквивалент: double a; если (выражение1) а = а1; иначе, если (выражение2) а = а2; иначе, если (выражение3) а = а3; else / * иначе * / a = a4;
условный оператор может дать L-значение в C / C ++, которому может быть присвоено другое значение, но подавляющее большинство программистов считают это крайне плохим стиль, хотя бы потому, что техника неясна.
((foo)? bar: baz) = frink; // эквивалент: if (foo) bar = frink; иначе baz = frink;