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

i=9;i>=1;i--和i=9;1<=i<=9;i--两者有区别吗

刚才逗比得用回答来补充问题弄的没人回答了 所以再问一次

 为什么区间都1~9后者就无法输出结果呢

正在回答

2 回答

是谁教你 代码里的多条件可以连着写的?

for(i=1;i<=9;i++){}   //我相信这样写没问题,不会报错
for(i=9;i>=1;i--){}   //这俩写法效果一样,其实大多数时候人们习惯写上面++的那个。
if(i>1 && i<=9) {}    // 多条件是需要 逻辑运算符的,不能直接连起来,数学的做法计算机不适用。


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

IT小逗比 提问者

非常感激
2015-08-11 回复 有任何疑惑可以回复我~

1 <= i <= 9 无法实现区间判断,但这也是合法的复合表达式。

<= 是左结合的,所以这个复合表达式相当于这样: (1 <= i) <= 9

其中 1 <= i 的结果是bool值true or false,这个bool值又会与9进行比较。而在比较时bool值会转换为与9相同的类型(int),true会被转换为1,false会被转换为0。

于是,前次比较的结果为true时,整个表达式为 1 <= 9。 当结果为false时,表达式为 0 <= 9。 而不管是哪种情况,整个表达式都会为true。

如果这表达式是用在for中的,则循环条件永远为真,for将一直循环下去。

实际上这样的代码在编译时,编译器会warning的。

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

举报

0/150
提交
取消

i=9;i>=1;i--和i=9;1<=i<=9;i--两者有区别吗

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