现在的位置: 首页 > 综合 > 正文

使用continue结束本次循环

2013年02月19日 ⁄ 综合 ⁄ 共 1058字 ⁄ 字号 评论关闭


 

4.4.2 使用continue结束本次循环

continue的功能和break有点类似,区别是continue只是中止本次循环,接着开始下一次循环。而break则是完全终止循环。可以理解为continue的作用是略过当次循环中剩下的语句,重新开始新的循环。例如如下程序示范了continue的用法:

程序清单:codes/04/4-4/TestContinue.java
public class TestContinue
{
public static void main(String[] args) 
{
//一个简单的for循环
for (int i = 0; i < 3 ; i++ )
{
System.out.println("i的值是" + i);
if (i == 1)
{
//略过本次循环的剩下语句
continue;
}
System.out.println("continue后的输出语句");
}
}
}

运行上面程序,看到如下运行结果:

i的值是0
continue后的输出语句
i的值是1
i的值是2
continue后的输出语句

从上面运行结果来看,当i等于1时,程序没有输出“continue后的输出语句”字符串,因为程序执行到continue时,忽略了当次循环中continue语句后的代码。从这个意义上来看,如果把一个continue语句放在单次循环的最后一行,这个continue语句是没有任何意义的——因为它仅仅忽略了一片空白,没有忽略任何程序语句。

与break类似的,continue也可以紧跟一个标签,用于直接结束标签所标识循环的当次循环,重新开始下一次循环。例如下面代码:

程序清单:codes/04/4-4/TestContinue2.java
public class TestContinue2
{
public static void main(String[] args) 
{
//外层循环
outer:
for (int i = 0 ; i < 5 ; i++ )
{
//内层循环
for (int j = 0; j < 3 ; j++ )
{
System.out.println("i的值为:" + i + "  j的值为:" + j);
if (j == 1)
{
//跳出outer标签所指定的循环。
continue outer;
}
}
}
}
}

运行上面程序可以看到,循环变量的值将无法超过1,因为每当j等于1时候,continue outer语句就结束了外层循环的当次循环,直接开始下一次循环,内层循环没有机会执行完成。

与break类似的,continue后的标签也必须是一个有效标签,即这个标签通常应该放在continue所在循环的外层循环之前定义。

抱歉!评论已关闭.