Conditional operatorLook up Conditional operator in Wiktionary, the free dictionary.
The conditional operator is supported in many programming languages. This term usually refers to && and ||In some programming languages, e.g. Java, the term conditional operator refers to short circuit boolean operators Difference from bitwise operator
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 Javaclass 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");
}
}
"?:"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 "?:"
Syntaxcondition ? 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 propertyThe 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 languagesJavaclass 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++#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++:
C#// 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#:
JavaScriptvar 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 chainThe 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 languagesJavaScriptfunction 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++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 expressionthe 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++((foo) ? bar : baz) = frink;
//equivalent to:
if (foo)
bar = frink;
else
baz = frink;
See also
References
|
Portal di Ensiklopedia Dunia