在任何迭代语句的主体部分,都可用break和continue控制循环的流程。其中,break用于强行退出循环,不执行循环中剩余的语句。而continue则停止执行当前的迭代,然后退回循环起始处,开始下一次迭代。
在JAVA中,标签起作用的唯一地方刚好是在迭代语句之前。"刚好之前"的意思表明,在标签和迭代之间置入任何语句都不好。而在迭代之前设置标签的唯一理由是:我们希望在其中嵌套另一个迭代或者一个开关。这是由于break和continue关键词通常只是中断当前循环,但若随同标签一起使用,它们就会中断循环,知道标签所在的地方。
下面是示例代码:
/*
* 文件名:BreakAndContinue.java
* 版权:Copyright by myoursky
* 描述:Break和Continue使用语法及区别
* 修改人:gaoxiaohan
* 修改时间:2014-10-13
* 跟踪单号:
* 修改单号:
* 修改内容:
*/
package com.myoursky.j2se;
public class BreakAndContinue {
public static void main(String[] args) {
breakMethod();
continueMethod();
breakLabel1();
breakLabel2();
continueLabel1();
continueLabel2();
}
/**
* Description: break语法<br>
* @see
*/
private static void breakMethod(){
System.out.println("===break语句输出结果===");
for(int i=0;i<10;i++){
if(i==3) break;
System.out.print(i+",");
}
System.out.print("\n");
}
/**
* Description:Continue语法 <br>
* @see
*/
private static void continueMethod(){
System.out.println("===continue语句输出结果===");
for(int i=0;i<10;i++){
if(i==3) continue;
System.out.print(i+",");
}
System.out.print("\n");
}
/**
* Description: break在双重循环中的使用,跳出当前循环,当前循环不再继续执行<br>
* @see
*/
private static void breakLabel1(){
System.out.println("===breakFor语句输出结果===");
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
if(j==1) break;
System.out.print(i+":"+j+",");
}
}
System.out.print("\n");
}
/**
* Description: break label在双重循环中的使用,跳转至label标签处,循环不再继续执行。<br>
* @see
*/
private static void breakLabel2(){
System.out.println("===breakLabel语句输出结果===");
label:
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
if(j==1) break label;
System.out.print(i+":"+j+",");
}
}
System.out.print("\n");
}
/**
* Description: break在双重循环中的使用,跳出当前循环,当前循环继续执行<br>
* @see
*/
private static void continueLabel1(){
System.out.println("===continueFor语句输出结果===");
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
if(j==1) continue;
System.out.print(i+":"+j+",");
}
}
System.out.print("\n");
}
/**
* Description: break label在双重循环中的使用,跳转至label标签处,循环继续执行。<br>
* @see
*/
private static void continueLabel2(){
System.out.println("===continueLabel语句输出结果===");
label1:
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
if(j==1) continue label1;
System.out.print(i+":"+j+",");
}
}
System.out.print("\n");
}
}