问答详情
源自:4-9 Java循环语句之 for

这样为什么不可以呢?~

http://img.mukewang.com/55840cab0001750308690415.jpg?~~~~

 

提问者:_凡人 2015-06-19 20:36

个回答

  • 丶小八戒
    2015-06-19 22:28:36
    已采纳

    你的代码和执行结果是对应的,没有什么问题。

    (1)第一次循环 i = 1;i % 3 != 0 && i <= 100 条件成立。

    所以先输出 sum = 0;

    然后再 执行 i++,sum = sum + i 操作;(i++导致 i 变为2,sum = sum + i 导致 sum 变为 2)

    (2)第二次循环 i = 2;i % 3 != 0 && i <= 100 条件成立。

    所以先输出sum = 2;

    (3)第三次循环 i = 3;i % 3 != 0 && i <= 100 条件不成立,退出循环。


    这里的问题是:你编写的代码逻辑有错误。你应该把  i % 3 != 0 条件放到循环体内去判断,同时把sum叠加操作放到循环体内执行。


    如:

    int sum = 0;

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

        if(i % 3 != 0){

            sum = sum + i;

            System.out.println("i:" + i);

            System.out.println("sum:" + sum);

        }

    }


  • 本地通行
    2015-06-19 22:27:48

    应该把 print 放在 for 循环的外层

  • chavin
    2015-06-19 21:12:33

    你的 代码不能写规范一点吗?