专业的JAVA编程教程与资源

网站首页 > java教程 正文

java不得不说的秘密-Java中goto跳转执行代码的秘密

temp10 2025-04-08 18:18:40 java教程 11 ℃ 0 评论

总所周知,Java中goto属于保留字,但是你不能说Java没有goto功能的实现。
提出一个问题:当有三层循环的时候,在第三层循环满足某些条件怎么跳出所有循环或者继续开始第一层循环呢?
事实胜于雄辩
上代码,你觉得下面 代码正确吗?

public class Test {
    public static void main(String[] args) {
        lable:for(int i=0;i<3;i++) {
            for (int j=0; j < 3; j++) {
                for(int k=0;k<3;k++) if k='= 1)' break lable system.out.printlni='+ i +' j='+ j+' k='+k);                 }             }         }     } }

来看输出结果:

java不得不说的秘密-Java中goto跳转执行代码的秘密



在进行第三层循环的时候,k=1的时候,整个三层循环全部退出了,也许你发现了其中的差一点,我们稍后再说。

继续上菜,不对上代码

public class Test {
    public static void main(String[] args) {
        lable:for(int i=0;i<3;i++) {
            for (int j=0; j < 3; j++) {
                for(int k=0;k<3;k++) if k='= 1)' continue lable system.out.printlni='+ i +' j='+ j+' k='+k);                 }             }         }     } }
有过第一个代码片段的经验,我想你不会再想着会报错吧。

来看输出结果:



不要感到吃惊,这不就是Java的goto!不过没有C语言那么强,不过也能实现跳转,在一些场景中还是一个不小的利器

在最基本的Java语法中,breakcontinue只能默认对最近的循环起到作用。
但是,配合上lable标签,即代码中第一层循环前面的lable这个字段,就是lable标签,具体标签起什么名字可以自己决定。
使用很简单,让break或continue针对某一个指定的循环起作用,那么使用label标签添加在这个循环前面,然后使用break或continue加上循环定义的label标签
注意,lable标签和循环之间不能再有其他代码。

是不是由get到了(^_-)


本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表