A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李洋- 中级黑马   /  2013-12-12 22:02  /  2408 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int i=0;
int sum=0;
while(i<=10)
{
i++;
     if( i%2!=0 )
        continue;
sum+=i;
}
System.out.println(sum);
这是怎么个流程啊?

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 淡定

查看全部评分

4 个回复

倒序浏览
本帖最后由 小斥候 于 2013-12-12 22:28 编辑

这是来运算得出11以内所有偶数的和啊
i++;
     if( i%2!=0 )
        continue;
sum+=i;

if(i%2!=0)表示:判断 i 除以2得到的余数是否不等于0,
如果不等于0,则continue;继续下一次循环;否则把i加到sum里面去。
注意:最后一次判断是 i=11;

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 很给力!

查看全部评分

回复 使用道具 举报
运行结果:30
一运行while循环,i就先自加了,if语句判断的是偶数,结果是偶数相加,如果是奇数的话直接结束循环(continue),下面的sum+=i就不执行了!
回复 使用道具 举报

首先看一下while循环的格式和执行流程

格式:
   初始化条件;
   while(判断条件)
   {
    循环体;
    控制条件;
   }
   
执行流程:
    a:先执行初始化条件;
    b:执行判断条件
    c:根据判断条件的返回值:
     true:执行循环体。
     false:就结束循环。
    d:最后执行控制条件。返回到b继续。

对于你写的代码:结果是求1到10的偶数和。
int i=0;  //初始化条件
int sum=0;
while(i<=10)  //判断条件
{
         i++;  //控制条件
     if( i%2!=0 )
        continue; //如果i不能被2整除,那么执行下一次循环
         sum+=i;  //循环体
}
System.out.println(sum);

具体的流程是:先执行int i = 0和sum = 0;然后判断是否i<=10,如果是,则进入while循环;
                      进入之后,执行if条件句,如果如果i不能被2整除,那么执行下一次循环,执行i++,然后重新判断是否i<=10;
                      如果if条件是true,那么跳过continue,直接执行sum +=i,然后执行i++,再重新判断是否i<=10.
                      这样,当i是奇数时,就返回下一次循环;当i是偶数时,就让sum加上i的值,最终得到1到10的偶数和。

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 25分,只是开始,而不是结束。.

查看全部评分

回复 使用道具 举报

执行顺序是这样的:
1、i =0;给int型的变量i赋初值为0,sum初值为0
2、while循环中判断只要i的值小于等于10就继续执行其中代码
3、i++;i的值自加变成1
4、if判断i除以2的余数不为0,即若i为计数,则continue,回到while括号内继续判断,结果为真继续执行
5、i++;i的值自加变成2
6、if为假,执行sum+=i;即sum=sum+i;sum的值此时为2,回到while括号内继续判断,结果为真继续执行
7、因此通过这个周期可以看出sum的值为10以内所有的偶数之和,即为30
8、打印输出语句,结果为30

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马