Logo

郎哥编程

第24讲:条件运算符

2026-03-06 18

前面内容介绍了条件结构,并通过示例探讨了该结构的各种不同方法。C语言还提供了一种称为“条件运算符”的特殊运算符,它可以用于条件表达式中,以提供与if-else等同的结构。此运算符是?和:符号的组合,它是一个三目运算符,即具有三个参与运算的操作数,其语法规则如下:

表达式1 ? 表达式2:表达式3

其中,表达式1返回1(真)或0(假),其值可以为真,也可以为假。如果表达式1的值为真,则以表达式2的值作为整个条件表达式的值。否则,以表达式3的值作为整个条件表达式的值。条件运算符通常用于赋值语句中。其工作原理可以用图片形式进行描述,如下图所示。

例如,要找出两个数字中的最大值,可以编写:

max = num1 > num2 ? num1:num2;

   可以看出,条件运算符需要三个操作数,一个是需要被赋值的操作数,另外两个是参与比较运算的操作数。该语句首先检查表达式num1>num2,判断其值是真还是假。如果此表达式的值为真,即num1>num2,则将num1赋值给max,否则,将num2的值赋值给max。

此运算符等同于如下的if-else结构

if(exprt1)
{
	exprt2;
}
else
{
   exprt3;
}

上述求较大值的示例等同于:

if(num1>num2)
      max = num1;
else
      max=num2;

如果在条件语句中,只执行单个的赋值语句时,则可使用条件表达式来实现。不但使程序简洁,也提高了运行效率。

例【1】条件运算符练习

编程要求:编写一个程序,要求用户输入基本工资,计算税后工资。

个人所得税收取规定:工资大于3500元的部分将扣除个人所得税。小于3500元的部分不扣除个人所得税。

程序清单 sample.c

#include <stdio.h>
int main()
{
	double sal;
    double rate;
    printf("请输入基本工资:");
    //接收用户输入的基本工资
    scanf("%lf",&sal); 
    rate = ( sal < 3500 ) ? 0 : 0.05;
    //计算税后工资
    sal = sal - ( sal-3500 ) * rate;
    printf("\n 税后工资为:%7.2f \n",sal);
}

代码在线纠错(通义千问 qwen-max)

支持粘贴多个代码文件,提交后由阿里云通义千问自动分析代码漏洞、语法错误、逻辑问题并给出修改建议。
您已解锁 AI 代码纠错功能,可正常使用!

评论区

登录 后发表评论
暂无评论