首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么if (2 <9< 3)是真的?

为什么if (2 <9< 3)是真的?
EN

Stack Overflow用户
提问于 2021-01-18 04:35:14
回答 4查看 497关注 0票数 15

这是我准备考试中的一道题:

代码语言:javascript
复制
int val = 0;
int x = 0;
int y = 1;
if (x < val < y)
    printf(" true ");
else
    printf(" false ");

为什么会这样呢?我尝试更改xval,但它忽略了这些更改,只要y大于0 (所以123...)这句话是真的。例如:if (3 < 9 < 2)将为true。

EN

回答 4

Stack Overflow用户

发布于 2021-01-18 04:38:02

( 2 < 9 < 3 )的计算结果为( ( 2 < 9 ) < 3)

在第一步中,2 < 9被求值为true,它被表示为整数值1,并导致第二步的((1) < 3)

这显然是真的。

您可能想要像((x < val) && ( val < y))这样的东西。

票数 37
EN

Stack Overflow用户

发布于 2021-01-18 04:39:42

首先检查x和val。如果它的值是正确的,则将其转换为1并使用y进行检查。

票数 4
EN

Stack Overflow用户

发布于 2021-01-18 10:09:06

第一个是检查x是否< value。如果为真,则返回1,因此下一步是检查1是否< y。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65765661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档