You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++判断值是否在区间:为何A < B < C失效而A < B && B < C可用

A < B < C写法失效的原因(C++)
  • C++的<关系运算符为左结合规则,不会按照人类直觉的「B同时介于A和C之间」的逻辑解析,会从左到右分步执行运算:
    1. 首先计算A < B,得到布尔类型的结果:结果为真时对应整数值1,结果为假时对应整数值0
    2. 再将第一步得到的1/0和C做比较,也就是实际执行的逻辑是(A < B) < C
  • 举个反例就能直观看到问题:假设A=2,B=5,C=3,你预期判断5是否在2和3之间,结果应为假。但按A < B < C执行:
    1. 先算2 < 5,结果为真,对应数值1
    2. 再算1 < 3,结果为真,最终if分支会被错误触发
  • 而A < B && B < C的逻辑是完全符合预期的:&&逻辑与运算符要求左右两个判断条件同时为真,整体表达式结果才为真,刚好对应「B大于A且B小于C」的区间判断需求。

额外补充:部分语言(比如Python)支持链式比较的语法,A < B < C会被自动解析为A < B and B < C,但C++没有对应语法设计,不要跨语言直接套用写法。

内容的提问来源于stack exchange,提问作者Pro_gram_mer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 03:06:03