黑马程序员技术交流社区
标题: 请帮我看一下代码输出结果 [打印本页]
作者: 李洋- 时间: 2013-12-12 22:02
标题: 请帮我看一下代码输出结果
int i=0;
int sum=0;
while(i<=10)
{
i++;
if( i%2!=0 )
continue;
sum+=i;
}
System.out.println(sum);
这是怎么个流程啊?
作者: 小斥候 时间: 2013-12-12 22:21
本帖最后由 小斥候 于 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;
作者: 唐侠君 时间: 2013-12-12 22:26
运行结果:30
一运行while循环,i就先自加了,if语句判断的是偶数,结果是偶数相加,如果是奇数的话直接结束循环(continue),下面的sum+=i就不执行了!
作者: 松子 时间: 2013-12-12 22:31
首先看一下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的偶数和。
作者: 熊猫86 时间: 2013-12-12 23:24
执行顺序是这样的:
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
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |