前言
在回顾Java之前的基础知识的时候,碰巧遇到了“循环跳转便签”。其实在C语言中,就有利用goto的方法实现多层循环的跳转。而在Java中为了便于阅读与使用,则引入了标签。
简单运用
在Java中的两个跳转语句:
1 | break [label]; //跳出循环 |
一般情况break
与continue
是不带标签使用,这时候是默认没有标签跳转。而当加入标签,就能实现多层循环的跳转。
例如:
break
带标签运行结果:1
2
3
4
5
6
7gonext: //在这里设立一个标签,其以下的语句,就是其作用域
for(int i=0; i< 5; i++){
for(int j=0; j<5; j++){
System.out.print(j + "\t");
break gonext;
}
}相当于整个1
0
gonext
作用域下的最外层循环执行了break
。continue
带标签运行结果:1
2
3
4
5
6
7
8gonext: //在这里设立一个标签,其以下的语句,就是其作用域
for(int i=0; i< 5; i++){
for(int j=0; j<5; j++){
System.out.print(j +"\t");
if(j > 2)
continue gonext;
}
}同样相当于给1
0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3
gonext
域执行了continue
。
总结与注意
经过我的实验,循环不可以跨标签域跳转。
例如 gonext
标签内不能跳转到,gonnextnext
标签中
1 | gonext: |
而嵌套型的标签是可以的。
例如每个循环设置一个标签,可以跳转到任意层。
1 | go1: |