千家信息网

怎么使用Java中的goto语句

发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,这篇文章主要介绍"怎么使用Java中的goto语句",在日常操作中,相信很多人在怎么使用Java中的goto语句问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么使用J
千家信息网最后更新 2025年11月11日怎么使用Java中的goto语句

这篇文章主要介绍"怎么使用Java中的goto语句",在日常操作中,相信很多人在怎么使用Java中的goto语句问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么使用Java中的goto语句"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Java goto语句妙用

今天和朋友聊天的时候,无意间聊到了 goto 语句,但是在 Java 中, goto 是保留关键字,但是朋友说 Java 中有和 goto 类似效果的语句,我竟然一点都不知道!顿时感觉 Java 白学了!心里万马奔腾!?

立马回来查资料+写demo,还有这种操作???!!!哭了哭了。。。

Java label

众所周知,在Java中,for 循环的终止语句可以使用的有 breakcontinuereturn 。但是如果是两层以上的for循环,想要从里层跳出到最外层,即跳出所有for循环,上面的这三种就不好实现了。此时我们就可以用 自定义名 + ' : '(冒号)实现。直接看代码:

public class JavaLabel {  public static void main(String[] args) {    //此处可以自定义名    outer:    for (int i = 0; i < 10; i++) {      for (int j = 0; j < 10; j++) {        if (j == 5) {          break outer;        }        System.out.println(j);      }    }  }}

label 关键字可以配合 breakcontinue 使用,以上代码,只要进入 for 循环,就会直接终止整个两层 for 循环,实现了我们想要的结果。

反编译

我们再用 javap 工具反编译一下:

可以看出 Java 字节码在底层也是使用了 goto,所以,终归还是用的 goto ,落叶归根啊!

也算涨了知识,感谢我这位朋友,特此记录。

"goto"--标签(基本用法+实例)

1.GoTo简介

在编程语言中,goto一开始就存在。在学习汇编语言的时候,就有指令跳转的程序控制语句,其实程序跳转在编程语音中是普遍存在的,像c,c++,java等语言中if,for等都是程序跳转,如果你查看最终编译生成的汇编代码,你就会发现这没有什么特别的。

2.那么为什么goto的名声这么不好呢?

goto语句名声不好,还是要归功于goto语句是在源码级上的跳转。破坏结构化设计风格;经常带来错误或隐患,它可能跳过了某些对象的构造、变量的初始化、重要的计算等语句。所以,如果你在使用的时候要多加小心。

3.java中的goto--标签

虽然goto语句有一些不好的地方,但是事实上goto在某些时候还是很好用的。java对于这个问题,采取的是中庸之道,java没有goto,但是采用了具有相同机制的标签

label:

while(或其他循环语句)

注:标签与迭代之间什么代码都不要有!

java引入标签是为了解决中断嵌套循环,因为如果我们使用了嵌套循环时,break和continue只能中断当前循环,也就是只能中断内部循环,而外部循环还是在的,那么我们来测试一下

public class label {    public static void main(String[] args) {         int i=9;         while (i > 3){             while (i > 3){                 if (i<=5) {                     System.out.println();//换行                     break ;                 }                 System.out.print(i);                 i--;             }             System.out.print(i);             i--;         }    }}

输出结果:

9876

5

4

为什么是这个结果呢,因为我们break只跳出了内层循环,所以执行了外部循环的输出i后,i-,又再次进入到了内层循环,输出了一个换行。

当我们使用标签时

public class label {    public static void main(String[] args) {        int i=9;        label1:        while (i > 3){            while (i > 3){                if (i<=5) {                    System.out.println();//换行                    break label1;                }                System.out.print(i);                i--;            }            System.out.print(i);            i--;        }    }}

输出结果:

9876

尽管标签是写在循环的前面,但是当我们使用跳转的时候,还是直接跳过了这个循环(后面的54没有输出)

当我们使用continue 标签时

public class label {    public static void main(String[] args) {        int i=9;        label1:        while (i > 3){            while (i > 3){                if (i<=5) {                    System.out.println();//换行                    continue label1;                }                System.out.print(i);                i--;            }            System.out.print(i);            i--;        }    }}

你会发现程序陷入了死循环,continue只是让我们程序跳转到了标签处,但是还是会再次进入循环,也就是说在这个程序中,程序一直卡在i=5 输出换行。

到此,关于"怎么使用Java中的goto语句"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

循环 语句 标签 程序 还是 输出 时候 学习 不好 代码 结果 朋友 语言 编译 也就是 关键 关键字 内层 再次 名声 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 锐思数据库注册 山东省网络安全等级保护 软件开发需求故事 软件开发关系户返点 秦皇岛社保卡软件开发公司 网狐荣耀需要什么服务器 武汉网络安全方面的公司 公安部网络安全保卫黄小苏 电子数据库的处理技术有哪些 游戏里只有某一个服务器有bug 贵州软件开发外包详情 微信云数据库id索引 数据库使用集函数 网络技术工程师考试内容 vf导出全部数据库 网件网络技术有限公司南京职位 冠军篮球经理数据库 服务器支持几个网络插口 网络安全与信息化实施方案 汽车 手机 联网软件开发 重庆喔噻互联网科技有限公司 单位网络安全方面的不足 数据库的唯一约束设置 软件开发实习工作是什么 大同市网络安全员工资标准是多少 云智能互联网诚鑫科技 丰台区信息化软件开发怎么样 网络技术可以挂靠的证书 内网服务器如何跟公网服务器连接 access数据库包含有表
0