fbpx
Wikipedia

Conditional operator

The conditional operator is supported in many programming languages. This term usually refers to ?: as in C, C++, C#, and JavaScript. However, in Java, this term can also refer to && and ||.

&& and || edit

In some programming languages, e.g. Java, the term conditional operator refers to short circuit boolean operators && and ||. The second expression is evaluated only when the first expression is not sufficient to determine the value of the whole expression.[1]

Difference from bitwise operator edit

& and | are bitwise operators that occur in many programming languages. The major difference is that bitwise operations operate on the individual bits of a binary numeral, whereas conditional operators operate on logical operations. Additionally, expressions before and after a bitwise operator are always evaluated.

if (expression1 || expression2 || expression3) 

If expression 1 is true, expressions 2 and 3 are NOT checked.

if (expression1 | expression2 | expression3) 

This checks expressions 2 and 3, even if expression 1 is true.

Short circuit operators can reduce run times by avoiding unnecessary calculations. They can also avoid Null Exceptions when expression 1 checks whether an object is valid.

Usage in Java edit

class ConditionalDemo1 {  public static void main(String[] args) {  int value1 = 1;  int value2 = 2;  if ((value1 == 1) && (value2 == 2))  System.out.println("value1 is 1 AND value2 is 2");  if ((value1 == 1) || (value2 == 1))  System.out.println("value1 is 1 OR value2 is 1");  } } 

"?:" edit

In most programming languages, ?: is called the conditional operator. It is a type of ternary operator. However, ternary operator in most situations refers specifically to ?: because it is the only operator that takes three operands.[2]

Regular usage of "?:" edit

?: is used in conditional expressions. Programmers can rewrite an if-then-else expression in a more concise way by using the conditional operator.[3]

Syntax edit

condition ? expression 1 : expression 2 

condition: An expression which is evaluated as a boolean value.

expression 1, expression 2: Expressions with values of any type.

If the condition is evaluated to true, the expression 1 will be evaluated. If the condition is evaluated to false, the expression 2 will be evaluated.

It should be read as: "If condition is true, assign the value of expression 1 to result. Otherwise, assign the value of expression 2 to result."

Association property edit

The conditional operator is right-associative, meaning that operations are grouped from right to left. For example, an expression of the form a ? b : c ? d : e is evaluated as a ? b : (c ? d : e).[2]

Examples by languages edit

Java edit
class ConditionalDemo2 {  public static void main(String[] args) {  int value1 = 1;  int value2 = 2;  int result;  boolean someCondition = true;  result = someCondition ? value1 : value2;  System.out.println(result);  } } 

In this example, because someCondition is true, this program prints "1" to the screen. Use the ?: operator instead of an if-then-else statement if it makes your code more readable; for example, when the expressions are compact and without side-effects (such as assignments).

C++ edit
#include <iostream> int main() {  int x = 1;  int y = 2;  std::cout << ( x > y ? x : y ) << " is the greater of the two." << std::endl; } 

There are several rules that apply to the second and third operands in C++:

  • If both operands are of the same type, the result is of that type
  • If both operands are of arithmetic or enumeration types, the usual arithmetic conversions (covered in Standard Conversions) are performed to convert them to a common type
  • If both operands are of pointer types or if one is a pointer type and the other is a constant expression that evaluates to 0, pointer conversions are performed to convert them to a common type
  • If both operands are of reference types, reference conversions are performed to convert them to a common type
  • If both operands are of type void, the common type is type void
  • If both operands are of the same user-defined type, the common type is that type.[4]
C# edit
// condition ? first_expression : second_expression; static double sinc(double x)  {  return x != 0.0 ? Math.Sin(x)/x : 1.0; } 

There are several rules that apply to the second and third operands x and y in C#:

  • If x has type X and y has type Y:
  • If an implicit conversion exists from X to Y but not from Y to X, Y is the type of the conditional expression.
  • If an implicit conversion exists from Y to X but not from X to Y, X is the type of the conditional expression.
  • Otherwise, no expression type can be determined, and a compile-time error occurs.
  • If only one of x and y has a type, and both x and y are implicitly convertible to that type, that type is the type of the conditional expression.
  • Otherwise, no expression type can be determined, and a compile-time error occurs.[2]
JavaScript edit
var age = 26; var beverage = (age >= 21) ? "Beer" : "Juice"; console.log(beverage); // "Beer" 

The conditional operator of JavaScript is compatible with the following browsers:

Chrome, Edge, Firefox (1), Internet Explorer, Opera, Safari, Android webview, Chrome for Android, Edge Mobile, Firefox for Android (4), Opera for Android, Safari on IOS, Samsung Internet, Node.js.[5]

Special usage in conditional chain edit

The ternary operator is right-associative, which means it can be "chained" in the following way, similar to an if ... else if ... else if ... else chain.[4]

Examples by languages edit

JavaScript edit
function example() {  return condition1 ? value1  : condition2 ? value2  : condition3 ? value3  : value4; } // Equivalent to: function example() {  if (condition1) { return value1; }  else if (condition2) { return value2; }  else if (condition3) { return value3; }  else { return value4; } } 
C/C++ edit
const double a = expression1? a1 : expression2? a2 : expression3? a3 : /*otherwise*/a4; // Equivalent to: double a;  if (expression1) a = a1;  else if (expression2) a = a2;  else if (expression3) a = a3;  else /*otherwise*/ a = a4; 

Special usage in assignment expression edit

the conditional operator can yield a L-value in C/C++ which can be assigned another value, but the vast majority of programmers consider this extremely poor style, if only because of the technique's obscurity.[6]

C/C++ edit

((foo) ? bar : baz) = frink; //equivalent to:  if (foo) bar = frink;  else baz = frink; 

See also edit

References edit

  1. ^ "Equality, Relational, and Conditional Operators (The Java™ Tutorials > Learning the Java Language > Language Basics)". docs.oracle.com. Retrieved 2019-04-29.
  2. ^ a b c BillWagner. "?: Operator - C# Reference". docs.microsoft.com. Retrieved 2019-04-29.
  3. ^ "The ? : operator in Java". www.cafeaulait.org. Retrieved 2019-04-29.
  4. ^ a b mikeblome. "Conditional Operator: ? :". docs.microsoft.com. Retrieved 2019-04-29.
  5. ^ "Conditional (ternary) operator - JavaScript". developer.mozilla.org. Retrieved 2019-04-29.
  6. ^ "Conditional Operator". wiki.c2.com. Retrieved 2019-04-29.

conditional, operator, look, wiktionary, free, dictionary, conditional, operator, supported, many, programming, languages, this, term, usually, refers, javascript, however, java, this, term, also, refer, contents, difference, from, bitwise, operator, usage, ja. Look up Conditional operator in Wiktionary the free dictionary The conditional operator is supported in many programming languages This term usually refers to as in C C C and JavaScript However in Java this term can also refer to amp amp and Contents 1 amp amp and 1 1 Difference from bitwise operator 1 2 Usage in Java 2 2 1 Regular usage of 2 1 1 Syntax 2 1 2 Association property 2 1 3 Examples by languages 2 1 3 1 Java 2 1 3 2 C 2 1 3 3 C 2 1 3 4 JavaScript 2 2 Special usage in conditional chain 2 2 1 Examples by languages 2 2 1 1 JavaScript 2 2 1 2 C C 2 3 Special usage in assignment expression 2 3 1 C C 3 See also 4 References amp amp and editIn some programming languages e g Java the term conditional operator refers to short circuit boolean operators amp amp and The second expression is evaluated only when the first expression is not sufficient to determine the value of the whole expression 1 Difference from bitwise operator edit amp and are bitwise operators that occur in many programming languages The major difference is that bitwise operations operate on the individual bits of a binary numeral whereas conditional operators operate on logical operations Additionally expressions before and after a bitwise operator are always evaluated if expression1 expression2 expression3 If expression 1 is true expressions 2 and 3 are NOT checked if expression1 expression2 expression3 This checks expressions 2 and 3 even if expression 1 is true Short circuit operators can reduce run times by avoiding unnecessary calculations They can also avoid Null Exceptions when expression 1 checks whether an object is valid Usage in Java edit class ConditionalDemo1 public static void main String args int value1 1 int value2 2 if value1 1 amp amp value2 2 System out println value1 is 1 AND value2 is 2 if value1 1 value2 1 System out println value1 is 1 OR value2 is 1 editIn most programming languages is called the conditional operator It is a type of ternary operator However ternary operator in most situations refers specifically to because it is the only operator that takes three operands 2 Regular usage of edit is used in conditional expressions Programmers can rewrite an if then else expression in a more concise way by using the conditional operator 3 Syntax edit condition expression 1 expression 2condition An expression which is evaluated as a boolean value expression 1 expression 2 Expressions with values of any type If the condition is evaluated to true the expression 1 will be evaluated If the condition is evaluated to false the expression 2 will be evaluated It should be read as If condition is true assign the value of expression 1 to result Otherwise assign the value of expression 2 to result Association property edit The conditional operator is right associative meaning that operations are grouped from right to left For example an expression of the form a b c d e is evaluated as a b c d e 2 Examples by languages edit Java edit class ConditionalDemo2 public static void main String args int value1 1 int value2 2 int result boolean someCondition true result someCondition value1 value2 System out println result In this example because someCondition is true this program prints 1 to the screen Use the operator instead of an if then else statement if it makes your code more readable for example when the expressions are compact and without side effects such as assignments C edit include lt iostream gt int main int x 1 int y 2 std cout lt lt x gt y x y lt lt is the greater of the two lt lt std endl There are several rules that apply to the second and third operands in C If both operands are of the same type the result is of that type If both operands are of arithmetic or enumeration types the usual arithmetic conversions covered in Standard Conversions are performed to convert them to a common type If both operands are of pointer types or if one is a pointer type and the other is a constant expression that evaluates to 0 pointer conversions are performed to convert them to a common type If both operands are of reference types reference conversions are performed to convert them to a common type If both operands are of type void the common type is type void If both operands are of the same user defined type the common type is that type 4 C edit condition first expression second expression static double sinc double x return x 0 0 Math Sin x x 1 0 There are several rules that apply to the second and third operands x and y in C If x has type X and y has type Y If an implicit conversion exists from X to Y but not from Y to X Y is the type of the conditional expression If an implicit conversion exists from Y to X but not from X to Y X is the type of the conditional expression Otherwise no expression type can be determined and a compile time error occurs If only one of x and y has a type and both x and y are implicitly convertible to that type that type is the type of the conditional expression Otherwise no expression type can be determined and a compile time error occurs 2 JavaScript edit var age 26 var beverage age gt 21 Beer Juice console log beverage Beer The conditional operator of JavaScript is compatible with the following browsers Chrome Edge Firefox 1 Internet Explorer Opera Safari Android webview Chrome for Android Edge Mobile Firefox for Android 4 Opera for Android Safari on IOS Samsung Internet Node js 5 Special usage in conditional chain edit The ternary operator is right associative which means it can be chained in the following way similar to an if else if else if else chain 4 Examples by languages edit JavaScript edit function example return condition1 value1 condition2 value2 condition3 value3 value4 Equivalent to function example if condition1 return value1 else if condition2 return value2 else if condition3 return value3 else return value4 C C edit const double a expression1 a1 expression2 a2 expression3 a3 otherwise a4 Equivalent to double a if expression1 a a1 else if expression2 a a2 else if expression3 a a3 else otherwise a a4 Special usage in assignment expression edit the conditional operator can yield a L value in C C which can be assigned another value but the vast majority of programmers consider this extremely poor style if only because of the technique s obscurity 6 C C edit foo bar baz frink equivalent to if foo bar frink else baz frink See also edit a conditional operator in computer programming Ternary operation Bitwise operators short circuit boolean operators Operator programming References edit Equality Relational and Conditional Operators The Java Tutorials gt Learning the Java Language gt Language Basics docs oracle com Retrieved 2019 04 29 a b c BillWagner Operator C Reference docs microsoft com Retrieved 2019 04 29 The operator in Java www cafeaulait org Retrieved 2019 04 29 a b mikeblome Conditional Operator docs microsoft com Retrieved 2019 04 29 Conditional ternary operator JavaScript developer mozilla org Retrieved 2019 04 29 Conditional Operator wiki c2 com Retrieved 2019 04 29 Retrieved from https en wikipedia org w index php title Conditional operator amp oldid 1189159345, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.