num = num + 2; sum = sum + num; 谁给我顺顺啊 这两句上下一调输出错误 是原理?是我还理解得不透彻?

来源:4-8 Java循环语句之 do...while

慕仙赤子心

2018-07-09 23:44

public class HelloWorld {

    public static void main(String[] args) {

        

int sum = 0; // 保存 1-50 之间偶数的和

        

int num = 2; // 代表 1-50 之间的偶数

        

do {

//实现累加求和

            

            num = num + 2;

sum = sum + num; // 每执行一次将数值加2,以进行下次循环条件判断

            

} while ( num<=50   ); // 满足数值在 1-50 之间时重复执行循环

        

System.out.println(" 50以内的偶数之和为:" + sum );

}

}


写回答 关注

8回答

  • moke牛牛
    2018-09-01 11:07:16
    sum = sum + num;//先求和
    num = num + 2;//再自增
    //这种情况下最后的表达式是:
         2+4+6+...+50 ==650
    num = num + 2;//先自增
    sum = sum + num;//再求和
    //这种情况下最后的表达式是:
         0+4+6+...+50+52  ==700
         
     看到区别了吧 第二种情况比第一种足足大了50

     

  • 4O4_Not_Found
    2018-08-02 10:34:36

    第一种情况:

    sum=sum+num;

    num = num + 2

    这样是先加完和,再判断num是否小于等于50,例如当num=50时执行完循环体内的代码后num=50+2,条件不满足所以就跳出循环了

    第二种情况:

    num = num + 2

    sum=sum+num;

    首先这样会少一个初始值2,而且如果num=num+2的值刚好为50 后面的判断条件为true,他会再执行一次循环。sum=sum+num就变成了sum=648+52   ,然后在进行判断,结果为false才会跳出循环。所以值为700



  • qq_还是养狗最靠谱_2
    2018-08-01 11:47:14

    先num=num +2这时候num先执行等于4,所以sum的初始值变成了4,之后就一直判断下去直到num大于

    50,跳出循环,虽然这样子是没有语法错误,但是这样子会使得50之内的偶数sum之和加少了一个2,所以是错误的。

  • Ken丶17
    2018-07-19 16:42:31

    你可以自己笔算一下,先进行  num = num + 2会使得sum总和少加了一个初始num值(2)

  • 慕仔6516052
    2018-07-10 15:50:49

    应该是第一次num+sum为2+0  然后  每一次sum加上num之后  再加num+2

  • 慕仔6516052
    2018-07-10 15:47:14

    应该是第一次sum+num为2+0  然后  每一次sum加上num之后  再加num

  • 慕仙赤子心
    2018-07-09 23:52:56

    正确代码循环得时候是不是 0+2   2+2  判断4不大于50 继续 循环 第二次 是不是就是 2+4  4+2 了

  • 慕仙赤子心
    2018-07-09 23:45:42

            

    sum = sum + num;

    num = num + 2; // 每执行一次将数值加2,以进行下次循环条件判断 


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

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

1165547 学习 · 17586 问题

查看课程

相似问题