大话C语言:第13篇 条件运算符

1 基础语法

条件运算符的语法格式

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

其中,

  • 表达式 1 一定起 判别 作用。表达式 2 和 表达式 3 只能有一个执行。

  • 三目运算的结果,必须被使用。

运算规则:

  • 判断 表达式 1 的结果:

    • 为真,整个三目运算的结果为 表达式 2

    • 为假,整个三目运算的结果为 表达式 3

能解决什么问题呢?比如,查询成绩系统中,根据成绩判定是否及格?可以用 三目运算来进行判断。

  • 综合案例 1:接收学生成绩,判断是否 及格,给出 Y/N 结果。

// 目标: 掌握 三目运算语法特性
int main(void)
{
	double score;
    
	printf("请输入成绩:");
	scanf("%lf", &score);

	char res = score >= 60 ? 'Y' : 'N'; // 三目运算结果 赋值给 res 变量

	printf("是否及格? %c\n", res);
	return 0;
}
  • 案例 2:找出两个数中的较小值

// 目标: 掌握 三目运算语法特性
int main(void)
{
	int a = 10;
    int b = 20;

	printf("较小值为:%d\n", a < b ? a : b);	// 三目运算结果在 printf 中使用
	return 0;
}

2 特性和嵌套应用

嵌套条件运算符的写法,在实际编程中较少见,因为代码可读性低。 但是,计算机考试中,经常出做考点。辨别技巧是,当 表达式中 有 2 个以上问号、冒号,一定是发生了 三目运算嵌套。处理方法是,先将位于右边的 “?” 与它后面最近一个 “:” 配对。因为条件运算符的结合性,自右向左。优先级高于赋值运算符,低于算数、逻辑、比较运算符。

  • 案例 1:

int res = w < x ? x + w : x < y ? x : y   	//  w < x ? x + w :(x < y ? x : y)

将右侧的与后面的 :配对,x < y ? x : y 看做一组 三目运算表达式,作为另外一组 三目运算的 表达式 3。

  • 案例 2:

int res = a > b ? c > d ? e : f : g		// a > b ? (c > d ? e : f ): g

        将右侧的与后面的 :配对,c > d ? e : f 看做一组 三目运算表达式,作为另外一组三目运算的 表达式 2。这种嵌套写法,看其他人写的程序时,能看懂即可。我们不要这样写。

3 总结

  • 语法规则:

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

    • 表达式 1 为真,整个取表达式 2; 为假,整个取表达式 3

    • 结果必须被使用

  • 嵌套三目运算:

    • 出现 两个以上 ?: ,说明有嵌套。

    • 自右向左,找 “?” 与它后面最近一个 “:” 配对

  • 优先级:

    • 高于 赋值运算符,低于 算数、逻辑、比较运算符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值