Usage of the ternary operator in c language: First, for the conditional expression [b? x: y], calculate the condition b; then make a judgment. If the value of b is true, calculate the value of is the value of x, otherwise, calculate the value of y, and the result of the operation is the value of y.
C language ternary operator usage:
For the conditional expression b ? x : y
, calculate first Condition b, and then make a judgment. If the value of b is true, the value of x is calculated, and the result of the operation is the value of x; otherwise, the value of y is calculated, and the result of the operation is the value of y.
A conditional expression never calculates both x and y. Conditional operators are right associative, that is, they are evaluated in groups from right to left. For example, a ? b : c ? d : e
will be executed as a ? b : (c ? d : e)
.
can be understood as condition ? Result 1 : Result 2 inside? No. is a format requirement. It can also be understood as whether the condition is true, the condition is true, the result is 1, otherwise it is the result 2.
Extended information:
The ternary operator, also known as the conditional operator, refers to the important functions of computer languages (c, c, java, etc.) component. It is the only operator with 3 operands, so it is sometimes called the ternary operator. Generally speaking, the associativity of ternary operators is right associative.
The following are some explanations about conditional operators:
(1), Usually, expression 1 is a relational expression or a logical expression, used to describe conditional expressions The conditions, expression2 and expression3 can be constants, variables or expressions. For example:
(x==y)?'Y':'N'(d=b*b-4*a*c)>=0?sqrt(d):sqrt(-d)ch=(ch>='A'&&ch<='Z')?(ch+32):ch
The above are all legal conditional expressions.
(2). The execution order of conditional expressions is: first solve expression 1. If the value is non-0, it means the condition is true, then solve expression 2. At this time, the value of expression 2 is as The value of the entire conditional expression;
If the value of expression 1 is 0, which means the condition is false, then expression 3 is solved, and the value of expression 3 is the value of the entire conditional expression. For example:
(a>=0)?a:-a
The execution result is the absolute value of a.
(3) In the program, directly assign the value of the conditional expression to a variable. For example:
min=(a<b)?a:b
The execution result is to assign the value of the conditional expression to the variable min, that is, assign the smaller number of a and b to min.
(4). The priority level of conditional expression is only higher than assignment operator, but lower than all operators encountered before.
Therefore, min=(a<b)?a:b
You don’t need the brackets, you can write it directly,min=a<b?a:b
If there is x<y?x 1:y-1
is equivalent to x<y(x 1):(y-1)
but not equivalent to (x<y?x 1:y)-1
(5), the combination direction of conditional operators is "from right to left".
(6), conditional expressions are allowed to be nested, That is, expression 2 and expression 3 in the conditional expression are allowed to be another conditional expression. For example:
x>0?1:x<0?-1:0
In the above conditional expression, the 3rd part of the expression is also a conditional expression. According to the associativity of the conditional expression, the above conditional expression is equivalent to:
x>0?1:(x<0?-1:0)
Its Its function is to determine the sign of x. When x is a positive number, the value of the conditional expression is 1; when x is a negative number, the value of the conditional expression is -1; when x is 0, the value of the conditional expression The value is 0.
(7). Conditional expressions cannot replace the general if statement. They can only replace the if statement when the statement embedded in the if statement is an assignment statement (and both branches assign values to the same variable). For example:
if(a%2==0)printf("even/n");elseprintf("odd/n");
The function of this statement is: if a is an even number, output even; if a is an odd number, output odd.
(8) The types of expression 1, expression 2 and expression 3 can be different. At this time, the value type of the conditional expression is the higher type among them.
Recommended tutorial: "C Video Tutorial"
The above is the detailed content of How to use the ternary operator in C language?. For more information, please follow other related articles on the PHP Chinese website!