C语言?:条件运算符的用法(新手必看)
自增、自减以及复合赋值运算符都是 C语言中提供的“精简运算符”,关于条件选择也有一个精简的运算符,叫做条件运算符(又称三目运算符)。
条件运算符用于将 3 个表达式连接在一起,组成条件表达式。条件运算符的语法格式如下:
它的执行步骤如下:
条件表达式的真或假需要进行判断,然后根据判断结果返回另外两个表达式中的一个。
条件表达式的执行流程图如下图所示:

图 1 条件表达式的执行流程图
例如代码:
【实例】模拟条件运算符实现输出送餐费用,假设消费 15 元就免配送费,否则要加 5 元的配送费。具体代码如下:
下面是餐费大于15元的运行结果:
条件运算符用于将 3 个表达式连接在一起,组成条件表达式。条件运算符的语法格式如下:
返回值=表达式1?表达式2:表达式3;有以下几点说明:
- 表达式1、表达式2、表达式3可以是任意合法的表达式;
- 它是C语言中唯一的三目运算符,其优先级高于赋值运算符,但低于关系运算符和算术运算符,结合方式是自右向左;
- 条件表达式最后的结果会赋给一个变量。
它的执行步骤如下:
- 步骤 1:首先判断表达式 1。
- 步骤 2:若表达式 1 的条件成立,则为真,计算表达式 2 的值,表达式 2 的值是整个条件表达式的值;若表达式 1 的条件不成立,则为假,计算表达式 3 的值,表达式 3 的值是整个条件表达式的值。
- 步骤 3:将最后的结果赋值给返回值。
条件表达式的真或假需要进行判断,然后根据判断结果返回另外两个表达式中的一个。
条件表达式的执行流程图如下图所示:

图 1 条件表达式的执行流程图
例如代码:
b=a>2?2:3;上述代码等价于:
if(a>2) { b = 2; } else { b = 3; }
【实例】模拟条件运算符实现输出送餐费用,假设消费 15 元就免配送费,否则要加 5 元的配送费。具体代码如下:
#include<stdio.h> int main() { int food, fee; //定义变量存储餐费、总共费用 printf("您的订单餐费是:\n"); //提示信息 scanf("%d", &food); //输入餐费 fee = food >= 15 ? food : (food + 5); //利用条件运算符计算总费用 printf("您的订单共计%d元,请支付\n", fee); //输出总费用 return 0; //程序结束 }运行程序,下面是餐费小于15元的运行结果:
您的订单餐费是:
13
您的订单共计18元,请支付
下面是餐费大于15元的运行结果:
您的订单餐费是:
25
您的订单共计25元,请支付