return:返回值,退出当前方法(void有隐式return)

break:退出循环,只能中断一个循环

continue:停止当前迭代,退回循环起始处,开始下一次迭代

goto:是保留字,但并未使用

switch 只能将 int 或 char 等整数类型作为选择因子,对于非整数类型必须使用一系列if语句,可以有enum来协调switch。case后是直接跟选择因子的,然后才是冒号。

label: 标签,用于迭代语句之前。用法如下

label1:
outer-iteration{
    inner-iteration{
        //
        break; //(1)中断内部迭代回到外部迭代
        //
        continue; //(2)返回内部迭代起始处
         //
        continue lable1;  //(3)同时中断内外,返回外部迭代,开始外部迭代
         //
         break lable1;   //(4)同时中断内外,返回label1但不重新进入迭代
    }       
}

详细例子如下:

import static net.mindview.util.Print.*;
public class LabeledFor {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int i=0;
        outer:
            for(;true;) {
                inner:
                    for(;i<10;i++) { //i没在这里初始化
                        print("i="+i);
                        if(i==2) {
                            print("continue");
                            continue;
                        }
                        if(i==3) {
                            print("break");
                            i++;//跳过递增,所以要对i递增
                            break;
                        }
                        if(i==7) {
                            print("continue outer");
                            i++;
                            continue outer;
                        }
                        if(i==8) {
                            print("break outer");
                            break outer;//后面不再循环
                        }
                        for(int k=0;k<5;k++) {
                            if(k==3) {
                                print("continue inner");
                                continue inner;
                            }
                        }
                    }
            }
    }

}

i=0
continue inner
i=1
continue inner
i=2
continue
i=3
break
i=4
continue inner
i=5
continue inner
i=6
continue inner
i=7
continue outer
i=8
break outer

 

总结:

1)一般continue会退回内层循环开头并继续执行

2)带标签continue会回到标签位置并重新进入跟在标签后的循环

3)一般break会中断并跳出当前循环

4)带标签break会中断并跳出标签所指的循环