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

关于循环条件和代码块的问题

http://img1.sycdn.imooc.com//568202280001de3c04450373.jpg

for(;i<=100 && (i%3!=0);i++){ 

 sum+=i;

 } 

为什么这样输出的sum是3啊?条件不能这样用吗?

正在回答

6 回答

你好。不行。 &&语句你理解为“且”的意思。就是前面后面都要满足才可以继续执行。所以。当你的第一个i%3!=0这个条件不满足的时候,for循环就已经终止了,也就是那个判断条件一旦有一次不满足整个for循环就会停止从而退出整个循环。明白了吗?

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

等于3的时候就跳出循环了  

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

错了  当大于等于3的时候  不会执行到i++这个语句  所以计算的结果为3

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

1+2=3,赞我!

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

Moonquakes 提问者

条件里边命名限定的是求模不等于3啊,为什么这里就变成小于3了,优先级叶没问题啊
2015-12-29 回复 有任何疑惑可以回复我~
#2

_泥人_ 回复 Moonquakes 提问者

i<100 && i/3! = 0 满足条件的时候才会运行。1,2,3停 : 3/3=0了。 1 + 2 = 3,你再算一遍
2015-12-29 回复 有任何疑惑可以回复我~
#3

_泥人_ 回复 _泥人_

3 % 3 = 0; 3/3=1
2015-12-29 回复 有任何疑惑可以回复我~

for语句的语法是for(循环变量初始化;循环条件;循环变化){

循环操作

}

循环条件应该分开写,再加一个if语句在大括号中,

for(;i<=100;i++){

if(i%3!=0){

sum+=i;

}

}

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

Moonquakes 提问者

课时教程中的 小细节3 有说可以这样用的呀。
2015-12-29 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//568201fc0001de3c04450373.jpg问题补充,运行的结果是这样的。

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

举报

0/150
提交
取消

关于循环条件和代码块的问题

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