这个while循环错哪了?

来源:4-12 Java循环跳转语句之 continue

纪元SpaceX

2016-04-12 22:30

int sum = 0; // 保存累加值


int i = 1;

        

        while (i <= 10){

            

            if (i %2 != 0){

                

                continue;

            }

            

            sum = sum + i;

            

            i++;

        }

        

        System.out.println("1到10之间的所有偶数之和为:" + sum);


写回答 关注

7回答

  • 我是猫猫虫
    2016-04-13 03:09:55
    已采纳

    你设置的 i 的初始值是 1

    进入while循环时, 判断 i<=10, 为真, 所以开始循环

    然后问题出在这个if, 你假设的是如果 i 对 2 求余不为 0, 则下面循环语句都不执行, 又开始判断while(i<=10)

    这就造成了 i 一直是 1, 进入while, 然后判断 if, 然后 continue, 然后又进入while...

    其实改变很简单, 只要把 i 的递增放在前面就行了

    如这样: (注意 i 从 0 开始循环, 先加 1, 再判断是奇偶, 是偶数则加到 sum 里面去)

    int sum = 0; // 保存累加值
    int i = 0;
    while (i <= 10) {
       i++;
       if (i % 2 != 0) {
           continue;
       }
       sum = sum + i;
    }
    System.out.println("1到10之间的所有偶数之和为:" + sum);

    纪元Spac...

    非常感谢!

    2016-04-23 20:23:58

    共 1 条回复 >

  • 慕移动9181930
    2022-03-29 02:30:40
  • 纪元SpaceX
    2016-04-23 20:25:10

    感谢你们的帮助

  • 火柴锅
    2016-04-12 23:23:25

    int sum = 0; // 保存累加值

    int i = 1;      

       while (i <= 10){

           if (i %2 != 0){

                i++;

               continue;

           }

           i++;

           sum = sum + i;

       }        

    System.out.println("1到10之间的所有偶数之和为:" + sum);


  • 火柴锅
    2016-04-12 23:14:55

    一直死循环了,问题出在  if (i%2 != 0)  不信你加断点试试,i 的值一直是1,没有自加操作

  • daomengkong
    2016-04-12 22:45:36

    在if中应加一句"i++",不然会造成死循环。

  • 什么什么青年欢乐多
    2016-04-12 22:44:07

    if (i %2 !== 0)//=为赋值运算,==才是判断

    什么什么青年...

    我的错了……

    2016-04-13 10:05:20

    共 1 条回复 >

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

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

1165172 学习 · 17581 问题

查看课程

相似问题