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

为啥用while,得出的结果是27, 用下面这个for得出的结果是21

public class HelloWorld {

    public static void main(String[] args) {

  int sum=0;

  int i=1;

  while(i<=10){

 i++;

 sum=sum+i;

if(sum>20){

 

 

System.out.println(sum);

break;

  }  }

}

为啥用while,得出的结果是27,

用下面这个for得出的结果是21

public class HelloWorld {

    public static void main(String[] args) {

// 保存累加值

int sum = 0;

// 从1循环到10

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

// 每次循环时累加求和

sum = sum + i;

// 判断累加值是否大于20,如果满足条件则退出循环

if ( sum>20             ) {

System.out.print("当前的累加值为:" + sum);

//退出循环

break;

}

}

}

}


正在回答

4 回答

同学你好,你这个while循环内不应该先i++,因为你初始值i=1并没有加上,把 sum=sum+i;和 i++;换位子就好了。

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

慕圣9147075 提问者

非常感谢!
2017-07-06 回复 有任何疑惑可以回复我~

把 sum=sum+i;和 i++;换位子就好了,你这样写的话,i要先执行自增的,并不是你要的1累加到10,而是从2累加到10,累加值大于20结束

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

把 sum=sum+i;和 i++;换位子就好了。其实你不换位置把int i=1改成int i=0 也可以

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

因为你的while循环第一次sum=0+2;后面就会不正确,不信你可以调试一下。

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

举报

0/150
提交
取消

为啥用while,得出的结果是27, 用下面这个for得出的结果是21

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