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

哪里有问题?

int i=1; int sum=0; do { if (i%2==0) { sum=i+sum; }else { i++; } }while(i<=50);         System.out.println(" 50以内的偶数之和为:" + sum );    哪里有问题?

正在回答

5 回答

楼上正解,当i为偶数2时,只有sum会不断增加,而无法执行else中的i++操作,从而陷入死循环。

解决办法:在sum = i + sum;语句下面同样加一句i++;

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

不对是大括号  没有匹配

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

do 里面语句: i =1 执行了else i++ 此时i为2 ,符合了while的条件 ,继续执行do里面语句。 2 % 2 == 0 成立,执行sum=i + sum 即 sum = 2 + 0 ,sum = 2 ,i = 2;此时仍然符合while的条件。  那么接着执行 do里面语句,2 % 2 == 0成立, sum = 2 + 2  , sum = 4 , i = 2 ; 又符合while的条件,那么接着执行 do里面语句,2 % 2 == 0成立, sum = 4 +2 , sum= 6 , i = 2 ;又符合while的条件,那么接着执行 do里面语句.......你这是个死循环,看懂了么

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

逻辑哪里错了?

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

 int i=1;
  int sum=0;
   do {
    if (i%2==0) {
     sum=i+sum;
    }else {
     i++;
    }
    
   }while(i<=50);
    
       
  System.out.println(" 50以内的偶数之和为:" + sum );

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

举报

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

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

进入课程

哪里有问题?

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