【C语言】关系操作符和条件操作符 - 教程
一、关系操作符
1. 核心概念
- 作用:用于比较两个操作数的大小或相等性,返回逻辑值(真或假)。
- 返回值:真 →
1,假 →0(C语言中非零值均表示真)。 - 常见运算符:
>(大于)<(小于)>=(大于等于)<=(小于等于)==(相等)!=(不相等)
2. 使用示例
a == b; // 判断a是否等于b
a != b; // 判断a是否不等于b
a b; // 判断a是否大于b
a = b; // 判断a是否大于等于b
3. 关键注意事项
•易混淆操作符:
==(相等判断)和=(赋值操作)
错误示例:
if (x = 3) { ... } // 实际是赋值,x被赋值为3,条件恒为真
正确写法:
if (x == 3) { ... } // 判断x是否等于3
- 编程技巧:将常量写在左侧避免误写(误写会报错)
if (3 == x) { ... } // 若误写为 if (3 = x),编译器会报错
- 禁止连续关系操作符:
错误示例:
if (18 <= age <= 36) // 错误!实际执行:(18 <= age) <= 36
问题分析:
- 先计算
18 <= age→ 返回0(假)或1(真) - 再将结果与
36比较(如0 <= 36恒为真)
正确写法(使用逻辑与&&):
if (age >= 18 && age <= 36)
{ // 判断age是否在[18,36]区间
printf("青年\n");
}
4. 典型应用场景
- 控制流程语句(如
if、while)中的条件判断
if (x == 3)
{
printf("x is 3.\n");
}
二、条件操作符(三目操作符)
1. 核心概念
- 语法结构:
exp1 ? exp2 : exp3 - 执行逻辑:
- 若
exp1为真(非零)→ 计算并返回exp2的值 - 若
exp1为假(0)→ 计算并返回exp3的值
- 若
2. 使用示例
练习1:条件操作符实现逻辑
源代码:
if (a > 5)
b = 3;
else
b = -3;
改写为条件操作符:
b = (a > 5) ? 3 : -3;
- 练习2:求两个数中的较大值
#include
int main()
{
int a = 10, b = 20;
int max = (a > b) ? a : b; // max = 20
printf("较大值: %d\n", max);
return 0;
}
3. 优势
- 简化代码:将简单的
if-else结构压缩为单行表达式。 - 提高可读性(在简单逻辑场景下)。

浙公网安备 33010602011771号