条件运算符计算为两个表达式之一,具体取决于逻辑表达式是否计算true或false。
因为涉及三个操作数,所以此运算符也称为三元运算符。
使用条件运算符的表达式的一般表示形式如下所示:
condition ? expression1 : expression2
运算符如何相对于操作数进行排列。
?字符遵循逻辑表达式, 条件。
在右边?是两个表示选择的操作数, expression1 和 expression2。
如果condition的计算结果为 true, 则操作产生的值将是 expression1 的值; 如果condition计算为 false, 则为 expression2 的值。
请注意,只有一个,表达式1或表达式2将被计算。
x = y > 7 ? 25 : 50;
如果y大于7,则该结果将x设置为25,否则为50。
这是一个很好的速记方式,产生与此相同的效果:
if(y > 7) x = 25; else x = 50;
例如,您可以编写一个表达式,比较两个薪水并获得两个薪水中的较大者,如下所示:
your_salary > my_salary ? your_salary : my_salary
下面是您如何处理该操作的方法:
#include <stdio.h>
int main(void)
{
const double PRICE = 3.50; // Unit price in dollars
const double rate1 = 0.05; // Discount for more than 10
double my_rate = 0.0;
int quantity = 0;
printf("Enter the number that you want to buy:");
scanf(" %d", &quantity);
my_rate = quantity > 10 ? rate1 : 0.6;
printf("The price for %d is $%.2f\n", quantity, my_rate);
return 0;
}
上面的代码生成以下结果。