【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. 典型应用场景​
  • 控制流程语句(如 ifwhile)中的条件判断
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 结构压缩为单行表达式。
  • 提高可读性(在简单逻辑场景下)。

posted @ 2025-09-06 12:11  yjbjingcha  阅读(13)  评论(0)    收藏  举报