Java的continue语句

来自CloudWiki
跳转至: 导航搜索
  • continue的功能和break有点类似,区别是continue只是忽略本次循环剩下语句,接着开始下一次循环,并不会终止循环;而break则是完全终止循环本身。
  • 以for循环为例(如图2-18所示),在循环主体中有continue语句时,当程序执行到continue,即忽略本次循环剩余的语句,继续执行下一次循环。
  • 图2-18 for循环中使用continue语句
  • Java2-20.png
  • 例如:遇到能被3整除的数时不打印:
public class ContinueTest {
	public static void main(String args[]) { 
		int i ; 
		for(i = 1; i <= 10; i++) { 
		    System.out.println("i = " + i); 
		    if(i%3 == 0) {
		     	// 执行该语句时将结束循环
		     	continue ; 
		    }
                    System.out.println("i = " + i); 
		    System.out.println("continue后的输出语句"); 
		} 
	 }
}
  • 运行上面程序,看到如下运行结果:
i = 1
continue后的输出语句
i = 2
continue后的输出语句
i = 3
i = 4
continue后的输出语句
i = 5
continue后的输出语句
  • 从上面运行结果来看,当i等于3时,程序没有输出“continue后的输出语句”字符串,因为程序执行到continue时,忽略了当次循环中continue语句后的代码。
  • 与break类似的是,continue后也可以紧跟一个标签,用于直接跳过标签所标识循环的档次循环的剩下语句,重新开始下一次循环。

例如:输出100到999之间的水仙花数,要求输出的水仙花数百位数不能相同,百位相同的仅输出遇到的第一个。

public class ContinueTestTwo {
	public static void main(String[] args) {
		// 外层循环,outer作为标识符
		outer:
		for(int a = 1; a <= 9; a++) {
			// 嵌套的中间层,middle作为标识符
			middle:
			for(int b = 0; b <= 9; b++) {
				// 最内层的循环
				for(int c = 0; c <= 9; c++) {
					if(a * a * a + b * b * b + c * c * c == 100 * a + 10 * b + c) {
						System.out.println("水仙花数:" + (100 * a + 10 * b + c));
						// 忽略outer标签所指定的循环中本次循环所剩下语句
						continue outer;
					}
				}
			}
		}
	}
}
  • 运行上面程序,看到如下运行结果:
水仙花数:153
水仙花数:370
水仙花数:407

返回 Java程序设计