CAPL 编程系列教程 - 第九期:运算符 (第二部分) - 关系与逻辑

CAPL 编程系列教程的第九期内容,主要讲解 CAPL 中运算符 (Operators) 的第二部分,重点是关系运算符逻辑运算符

CAPL 编程系列教程 - 第九期:运算符 (第二部分) - 关系与逻辑

一、 课程回顾与本期目标

  • 回顾: 上一期学习了 CAPL 的算术运算符和赋值运算符。
  • 本期目标: 学习 CAPL 中的关系运算符、逻辑运算符(本期未涉及位运算符,将在后续讲解 )。
  • 与 C 语言的关系: 这些运算符与 C 语言中的完全一致,有 C 基础可快速浏览

二、 关系运算符 (Relational Operators)

  • 作用: 用于比较两个值的大小或相等关系
  • 运算符:
    • == (等于) - 注意是双等号
    • != (不等于)
    • > (大于)
    • < (小于)
    • >= (大于或等于)
    • <= (小于或等于)
  • 返回值 (结果):
    • 关系运算表达式的结果是一个逻辑值 (真/假)
    • 在 CAPL (和 C) 中,用整数 1 代表真 (True / 成立)
    • 用整数 0 代表假 (False / 不成立)
  • 示例:
    • 3 == 5 结果为 0 (假)
    • 3 != 5 结果为 1 (真)
    • 3 < 3 结果为 0 (假)
    • 3 <= 3 结果为 1 (真)
  • 赋值与比较的区别:
    • 赋值 (=): 将右侧的值赋给左侧的变量。
    • 比较 (==): 判断两侧的值是否相等。不能用单等号进行相等比较
  • 结果赋值: 可以将关系运算的结果 (0 或 1) 赋值给一个整型变量
    • int result; result = (3 == 5); // result 的值为 0

三、 逻辑运算符 (Logical Operators)

  • 作用: 用于组合或修改逻辑表达式(通常是关系表达式)的真假结果
  • 运算符:
    • ! (逻辑非 / NOT): 对单个逻辑值取反
    • && (逻辑与 / AND): 连接两个逻辑值,当且仅当两边都为真时,结果才为真
    • || (逻辑或 / OR): 连接两个逻辑值,只要任意一边为真,结果就为真
  • 运算规则:
    • 逻辑与 (&&):
      • 1 && 1 结果为 1
      • 1 && 0 结果为 0
      • 0 && 1 结果为 0
      • 0 && 0 结果为 0
      • 计算顺序:从左到右,如果左侧表达式为假 (0),则不再计算右侧表达式(短路求值)。
    • 逻辑或 (||):
      • 1 || 1 结果为 1
      • 1 || 0 结果为 1
      • 0 || 1 结果为 1
      • 0 || 0 结果为 0
      • 计算顺序:从左到右,如果左侧表达式为真 (1),则不再计算右侧表达式(短路求值)。
    • 逻辑非 (!):
      • !1 结果为 0
      • !0 结果为 1
      • 优先级高: 逻辑非 ! 的优先级通常高于其他逻辑运算符和关系运算符,使用时要注意,必要时加括号 ()
      • 示例: !(3 == 5) 先算 3 == 5 得 0,再 !0 得 1。如果不加括号 !3 == 5,可能会先算 !3(非零即真,取反为 0),再算 0 == 5 得 0,结果不同
      • 非零即真: 在逻辑运算中,任何非零值都可以被当作“真”来处理。!33 是非零值(真),取反后为 0(假)
  • 组合使用: 可以将多个关系表达式用逻辑运算符连接起来,形成复杂的逻辑判断条件
    • 示例 (相亲逻辑):
      Code snippet
      // 条件: (月薪>=7500 且 存款>=30000) 或 颜值=='A'
      love = (salary >= 7500 && balance >= 30000) || (face == 'A');
      // 进一步条件: 上述条件满足 且 身高不能低于1.5米
      love = ((salary >= 7500 && balance >= 30000) || (face == 'A')) && !(height < 1.5);
      
    • 建议: 当逻辑表达式包含多个逻辑运算符时,使用括号 () 明确运算顺序,提高可读性

四、 位运算符 (Bitwise Operators)

  • 本期视频未讲解位运算符,将在后续课程中介绍

五、 总结与后续

  • 本期详细讲解了 CAPL 的关系运算符(用于比较)和逻辑运算符(用于组合逻辑条件),强调了它们的用法、返回值和优先级。
  • 掌握这些运算符对于编写条件判断和控制流程至关重要。
  • 下一期将继续讲解 CAPL 的其他内容(预计是位运算符)。