C 条件运算符

了解C - C条件运算符

条件运算符计算为两个表达式之一,具体取决于逻辑表达式是否计算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;
    }

上面的代码生成以下结果。