if (a==0&&b==0)与if(a==b==0)的区别

它们看起来只差一个括号,但含义完全不同


✅ 正确写法:if (a == 0 && b == 0)

  • 检查 a 和 b 同时为 0
  • 逻辑清晰,不会出错

❌ 错误写法:if (a == b == 0)

  • C++ 语法上合法,但逻辑错误
  • 执行顺序是:
    1. a == b → 结果是 bool 值true(1)或 false(0)。
    2. bool == 0 → 再比较这个 bool 值是否等于 0。

🔍 举个例子:

情况 a b a==b ab0 结果 说明
a=0, b=0 0 0 true (1) 1 == 0 → false ❌ 本应为 true,但变成 false
a=1, b=1 1 1 true (1) 1 == 0 → false ✅ 巧合正确
a=2, b=0 2 0 false (0) 0 == 0 → true ❌ 本应为 false,但变成 true

🚩 结论

  • 不要用 a == b == 0,它不是你想要的“a 和 b 同时为 0”。
  • 始终使用 a == 0 && b == 0,逻辑正确,易读安全。
posted @ 2025-07-13 20:51  mdyyyds_blog  阅读(125)  评论(0)    收藏  举报