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

来源:4-9 Java循环语句之 for

柒柒七

2017-03-06 12:57

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回答

  • Lianxn
    2017-03-06 13:15:13
    已采纳

    当 i = 3;

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

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

  • ziom
    2017-03-06 13:10:12

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

  • a_Bu
    2017-03-06 13:10:02

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

  • 柒柒七
    2017-03-06 13:07:32

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


    ziom

    求采纳求采纳

    2017-03-06 13:10:40

    共 1 条回复 >

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165172 学习 · 17581 问题

查看课程

相似问题