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

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

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

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

 

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

第一种情况:

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



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

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

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

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

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

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

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

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

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

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

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

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

        

sum = sum + num;

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


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

举报

0/150
提交
取消

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

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