黑马程序员技术交流社区
标题:
关于continue、标签的一个问题
[打印本页]
作者:
马超happy519
时间:
2012-11-19 12:55
标题:
关于continue、标签的一个问题
本帖最后由 马超happy519 于 2012-11-20 11:10 编辑
程序如下:
public class J_Test
{
public static void main(String[] args)
{
int sum = 0;
outer:
for(int i = 1; i<10; i++)
{
inner:
for(int j = 1; j < 3; j++)
{
sum += j;
if (i + j>6)
{
continue inner;
}
}
}
System.out.println("sum = " + sum);
}
}
我认为当 i 等于5时,内循环会一直计算下去,但运行结果是sum = 27。想知道内循环如何结束,求解。
作者:
陶辰
时间:
2012-11-19 14:43
continue 用法和break一样。电脑直接把continue inner;看成continue; 而continue用法是 跳过你的if语句,重新开始for循环。
作者:
李计伟
时间:
2012-11-19 15:10
使用break 退出循环 可以使用break 语句直接强行退出循环,忽略循环体中任何其他语句和循环条件测试。在循环中遇到break语句时,循环被终止,程序控制在循环后面语句重新开始。
而continue则停止执行当前的反复,然后退回循环起始和,开始新的反复。continue 用于跳过循环体中的一部分语句,也就是不执行这部分语句
return语句用来明确地从一个方法返回。也就是,return 语句使程序控制返回到调用它方法。因此,将它分类为跳转语句。
所以continue inner; 是跳出本次的inner循环并判断j 是否大于3 如果大于3就不走inner循环接着走外循环。
作者:
刘腾
时间:
2012-11-19 21:20
class J_Test
{
public static void main(String[] args)
{
int sum = 0;
outer:
for(int i = 1; i<2; i++)
{
inner:
for(int j = 1; j < 3; j++)
{
System.out.println("j="+j);
if (j==1)
{
continue inner;/*continue 结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断。
这个例子中,尚未执行的部分语句是System.out.println("i="+i);
继续执行j++,而不是执行int j=1*/
}
System.out.println("i="+i);
}
}
}
}
复制代码
对照这个,你再分析你那个就明白了
作者:
马超happy519
时间:
2012-11-20 09:38
明白了,多谢各位{:soso_e100:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2