在任何循环语句的主体部分,均可用 break 控制循环的流程,它用于强行退出循环,不执行循环中剩余的语句。continue 语句在循环语句体中用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。return 的作用是结束当前所在方法的执行。

break

break 的作用是停止最近的循环,例如:

for(int i=1;i<=100;i++){
    System.out.println(i);
    while(i==36){
        break; // 停止的是while循环,而不是外面的for循环
    }
}

带标签的 break 可以根据标签来定义循环结束的位置:

public static void main(String[] args){
        outer: // 定义标签结束的位置
        for(int i=1;i<=100;i++){
                System.out.println(i);
                while(i==36){
                        break outer; // 根据标签来结束循环 
                }
        }
}

P.S. 多层循环也可以使用标签,按照自己的需求去设定即可:

outer1:
for(){
    outer2:
    for(){
        for(){
            for(){
                break outer2;
            }
        }
    }
}

for(;;){} 会造成死循环。

Question:do-while, while, for循环谁的效率高?

Answer:一样高,循环只是提高了程序员编写代码的效率,但是底层执行的时候依然是重复执行。

continue

continue 的作用是结束本次离它最近的循环,继续下一次循环:

for(int i=1;i<=100;i++){
        while(i==36){
                System.out.println("------");
                continue; // 输出1-35,然后死循环
        }
        System.out.println(i);
}

带标签的 continue 可以根据标签来定义下一次循环的位置:

public static void main(String[] args){            
        outer:
        for(int i=1;i<=100;i++){
                while(i==36){ 
                        continue outer;  // 1-100没有36
                }
                System.out.println(i);
        }
}

P.S. 多层循环也可以使用标签,按照自己的需求去设定即可:

outer1:
for(){
    outer2:
    for(){
        for(){
            for(){
                continue outer2;
            }
        }
    }
}

return

程序中遇到 return 那么 return 所在的那个方法就停止执行了:

public static void main(String[] args){
        for(int i=1;i<=100;i++){
                while(i==36){ 
                        return; // 停止执行
                }
                System.out.println(i);
        }
        System.out.println("-----");
}