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

createh53个月前 (02-09)技术教程21

总所周知,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.println("i=" + i + ",j=" + j+",k="+k);
                }
            }
        }
    }
}

来看输出结果:



在进行第三层循环的时候,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.println("i=" + i + ",j=" + j+",k="+k);
                }
            }
        }
    }
}

有过第一个代码片段的经验,我想你不会再想着会报错吧。

来看输出结果:



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

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

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


相关文章

三十分钟入门基础Go(Java小子版)_java小白入门

前言Go语言定义Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态、强类型、编译型语言。Go 语言语法与...

Java与Go语言:实际应用体验的深度剖析

在软件开发领域,Java和Go作为两种极具影响力的编程语言,各自凭借独特的特性和优势,在不同的应用场景中大放异彩。Java凭借其强大的生态系统、丰富的类库和广泛的应用领域,长期占据着企业级开发的重要地...

有一定的c++ go java的编程基础,如何3天学会flutter开发

如果你有多种编程语言的基础,想要在 3 天内学会 Flutter 开发,可以按照以下的计划来进行:第一天:熟悉 Flutter 基础环境搭建首先,安装 Flutter SDK。根据 Flutter 官...

Java,Go和Rust之间的比较_go rust java

这是Java,Go和Rust之间的比较。 这不是基准测试,而是更多输出可执行文件大小,内存使用,CPU使用率,运行时要求之间的比较,当然还有一个小的基准测试,可以每秒获取一些请求,并尝试使 一些数字的...

Java21虚拟线程强势崛起Go&amp;Kotlin 还稳得住吗 | 年度技术盘点与展望

作者 | 张卫滨、蔡芳芳采访嘉宾 | 李三红编辑 | 张卫滨、蔡芳芳过去一年,编程语言发生了不少新变化。据 JetBrain 前不久发布的 《2023 开发者生态系统现状》调研报告,在开发者主要采用的...

Java不香了,要不要转go啊?_做java的以后可以转什么

本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注!在现在这个技术迅速发展的时代,不论是前端技术还是后端技术都发展得非常的快,Java是否已经内卷了不香了我们暂且不说,作为天天加班...