条件运算符是if
语句的简化版本。因为涉及三个操作数 - 逻辑表达式加上另外两个表达式 - 该运算符称为三元运算符。
使用条件运算符的表达式的一般表示如下所示:
condition ? expression1 : expression2
如果condition
的计算结果为true
,则该操作产生的值将为expression1
的值,如果condition
的计算结果为false
,则为expression2
的值。
可以在如下语句中使用条件运算符:
x = y > 7 ? 25 : 50;
如果y
大于7
,则该语句将x
的值设置为25
,否则将x
的值设置为50
。这是产生与此相同效果的一种很好的速记方式:
if(y > 7)
x = 25;
else
x = 50;
以下代码根据购买数量来计算折扣。
#include <stdio.h>
int main(void)
{
const double unit_price = 3.50; // 单价
const double discount1 = 0.05; // 超过10件的折扣
double total_price = 0.0;
int quantity = 0;
printf("请输入你要购买的数量:");
scanf(" %d", &quantity);
// 购买数量大于 10 ,则打折扣为 5%
total_price = quantity * unit_price * (1.0 - quantity > 10 ? discount1 : 0.5);
printf("购买数量为 %d 的总价是:$%.2f\n", quantity, total_price);
return 0;
}
编译和执行上面示例代码,得到以下结果:
hema@ubuntu:~/book$ vi main.c
hema@ubuntu:~/book$ gcc main.c
hema@ubuntu:~/book$ ./a.out
请输入你要购买的数量:22
购买数量为 22 的总价是:$38.50