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

为什么这样写结果会变成三呢?

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

if (i % 3 != 0) { 

sum = sum + i; // 累加求和

}}

System.out.println("1到100之间不能被3整除的数之和为:" + sum);

这样写答案是正确的,但是如果将i区域放到for中(下面那样),为什么答案就变成3了呢?

int sum = 0; 

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

    sum = sum + i; // 累加求和

}

System.out.println("1到100之间不能被3整除的数之和为:" + sum);


正在回答

4 回答

当 i = 3;

即不满足执行条件,i % 3!=0这个条件时。

代码结束,跳出循环,所以sum的值为1+2=3http://img1.sycdn.imooc.com//58bcf05d0001954017540847.jpg

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

你没有理清楚for循环的执行过程吧,拿你第二个for循环来说,中间的i<=100&&i%3!=0是循环条件,一旦不满足就会终止循环,这个循环与上面那个的区别也就是多了一个i%3!=0,很明显的,当i递增到3的时候,就不能满足循环条件了,所以sum只会做两次自增,分别+1, +2。

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

i<=100&&i%3!=0   i=3的时候  i%3=0条件不满足,自动退出循环。

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

不用解答啦~找到毛病了。


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

ziom

求采纳求采纳
2017-03-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么这样写结果会变成三呢?

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