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

这个while循环错哪了?

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

你设置的 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);

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

纪元SpaceX 提问者

非常感谢!
2016-04-23 回复 有任何疑惑可以回复我~

感谢你们的帮助

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

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);


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

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

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

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

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

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

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

什么什么青年欢乐多

我的错了……
2016-04-13 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165174    人
  • 解答问题       17581    个

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

进入课程

这个while循环错哪了?

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