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

来源:4-11 Java循环跳转语句之 break

慕圣9147075

2017-07-05 17:31

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

  • 慕数据0284452
    2017-07-05 18:29:01
    已采纳

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

    慕圣9147...

    非常感谢!

    2017-07-06 14:17:03

    共 1 条回复 >

  • 慕粉0122325535
    2017-07-05 18:58:09

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

  • yxh11028
    2017-07-05 18:09:52

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

  • 慕圣13961
    2017-07-05 17:47:41

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

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

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

1163393 学习 · 17551 问题

查看课程

相似问题