0%

Java-循环跳转标签

前言

在回顾Java之前的基础知识的时候,碰巧遇到了“循环跳转便签”。其实在C语言中,就有利用goto的方法实现多层循环的跳转。而在Java中为了便于阅读与使用,则引入了标签。

简单运用

在Java中的两个跳转语句:

1
2
break [label];		//跳出循环
continue [label]; //跳过本次,执行下一次

一般情况breakcontinue是不带标签使用,这时候是默认没有标签跳转。而当加入标签,就能实现多层循环的跳转。

例如:

  • break带标签
    1
    2
    3
    4
    5
    6
    7
    gonext:		//在这里设立一个标签,其以下的语句,就是其作用域
    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
    8
    gonext:		//在这里设立一个标签,其以下的语句,就是其作用域
    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
2
3
4
5
gonext:
for...
for...
gonextnext
for...

而嵌套型的标签是可以的。
例如每个循环设置一个标签,可以跳转到任意层。

1
2
3
4
5
6
go1:
for...
go2:
for...
go3
for...