易百教程

条件运算符

条件运算符是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