为了账号安全,请及时绑定邮箱和手机立即绑定

为什么10000>score>=5000输不出正确结果,而用score>=5000&&score<10000却可以

为什么10000>score>=50 为什么10000>score>=5000输不出正确结果,而用score>=5000&&score<10000却可以 \

正在回答

2 回答

区间判断在逻辑上其实是两个条件判断逻辑与相连:即 score大于等于5000 和 score小于10000 同时成立。 所以要用逻辑与运算符(&&)将两个条件判断相连。


其实 5000<=score<10000 也是一个合法的复合语句,但无法达到区间判断的效果,因为C是这样解释它的:(5000<=score)<10000。

5000<=score的结果是true或false,然后这个bool值再与10000做大小判断。因为ture会转换为1,false会转换为0,于是当score小于5000,则整个表达为 0<10000;当score大于等于10000,整个表达式为 1<10000,不管是哪种情况,整个表达式都是true。

0 回复 有任何疑惑可以回复我~
#1

zehaoliu 提问者

非常感谢!不错不错
2015-09-18 回复 有任何疑惑可以回复我~

语法不允许后面是语法允许的

0 回复 有任何疑惑可以回复我~
#1

onemoo

这是合法的C表达式,只是不能实现区间判断的效果。 详见下
2015-09-17 回复 有任何疑惑可以回复我~
#2

zehaoliu 提问者

谢啦!
2015-09-18 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么10000>score>=5000输不出正确结果,而用score>=5000&&score<10000却可以

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信