java中标签怎么用_Java中标签的使用
很多程序设计语言中有goto语句,goto语句的使用,使的程序变得难以读懂,尽管goto仍是Java的一个保留字,但并未在语言中得到正式使用;Java没有goto。然而,在break和continue这两个关键字的身上,我们仍然能看出一些goto的影子。它并不属于一次跳转,而是中断循环语句的一种方法。之所以把它们纳入goto问题中一起讨论,是由于它们使用了相同的机制:标签。
下面是一个例子,介绍一下这种标签在java中的使用。
int i = 0;
System.out.println("label1");
label1: for (int k = 0; k < 5; k++) {
i++;
if (k == 2) {
break label1;
}
System.out.println(i);
}
输出结果是:
label1
1
2
这说明当k=2时,执行了break语句,跳转到了label1标签处,但是并没有在进入这个for语句块。
int j = 0;
System.out.println("label2");
label2: for (int k = 0; k < 5; k++) {
j++;
if (k == 2) {
continue label2;
}
System.out.println(j);
}
输出结果是:
label2
1
2
4
5
这说明当k=2时,执行了continue语句,跳出了循环没有执行println语句,然后从label2标签的地方再次进入for语句块。
上面这两种情况的结果与不使用标签的,只使用break和continue的情况是相同的。因而体现不出标签的作用。
System.out.println("label3");
int h = 0;
label3: for (int k = 0; k < 5; k++) {
System.out.println("label3第一层");
for (int m = 0; m < 5; m++) {
System.out.println("label3第二层");
h++;
if (m == 2) {
break label3;
}
System.out.println(h);
}
}
输出结果是:
label3
label3 第一层
label3 第二层
1
label3 第二层
2
label3 第二层
这说明当k=m时,执行了break语句,跳转到了label3标签处,但是并没有在进入这个for语句块。
System.out.println("label4");
int l = 0;
label4: for (int k = 0; k < 5; k++) {
System.out.println("label4第一层");
for (int m = 0; m < 5; m++) {
System.out.println("label4第二层");
l++;
if (m == 2) {
continue label4;
}
System.out.println(l);
}
}
输出结果是:
label4
label4 第一层
label4 第二层
1
label4 第二层
2
label4 第二层
label4 第一层
label4 第二层
4
label4 第二层
5
label4 第二层
label4 第一层
label4 第二层
7
label4 第二层
8
label4 第二层
label4 第一层
label4 第二层
10
label4 第二层
11
label4 第二层
label4 第一层
label4 第二层
13
label4 第二层
14
label4 第二层
这说明当m=2时,执行了continue语句,跳出了循环没有执行println语句,然后从label3标签的地方再次进入for语句块。
当有多从循环的时候,程序只想跳出内层循环,而不跳出外层循环的时候就可以使用这样的break和continue标签了。这种嵌套循环也是适合while语句的。
当然你也可以写出这样的代码
label5:{
int b=0;
if(tag){
break label5;
}
......
}
用以跳过下面省略了的代码,当然这样的写法完全可以使用if else代替。
下面是对这个用法的总结:
(1) 简单的一个continue会退回最内层循环的开头(顶部),并继续执行。
(2) 带有标签的continue会到达标签的位置,并重新进入紧接在那个标签后面的循环
(3) break会中断当前循环,并移离当前标签的末尾。
(4) 带标签的break会中断当前循环,并移离由那个标签指示的循环的末尾。
java中标签怎么用_Java中标签的使用相关推荐
- java父类声明子类实现_java中父类声明子类实例化
问题: 1.比如两个类父类:Person 子类 Student extends Person在使用时候,这样写:Person person=null; //声明对象person=new Student ...
- java的布局管理器_Java中提供了几种布局管理器
近日,很多网友都在关注Java中提供了几种布局管理器这个话题,那么Java中提供了几种布局管理器具体情况是怎么样的呢?Java中提供了几种布局管理器的相关信息有哪些?下面的内容是小编为大家找到的关于J ...
- java中的流程控制_Java中的流程控制
1.break和continue break用于强行推出循环,不执行循环中剩余的语句.continue用于停止执行当前的迭代,然后退回循环起始处,开始下一次迭代.看下面的代码: public clas ...
- java中组件与容器_java中的容器组件和非容器组件
1.java使用到的图形类主要在java.awt 与javax.swing包中. 2.java.awt 与 javax.swing包的区别: ① java.awt中使用的图形类都是依赖于系统的图形库的 ...
- java boolean几个字节_Java中boolean类型到底占用多少个字节?
1.时间:2017-07-03 07:37:06YuanMxy 2.问题描述:今天在复习java基础的时候发现一小问题,Java中boolean类型到底占用多少个字节? 3.问题解答: (1)什么是b ...
- java 基本类型的引用_Java中的基本数据类型与引用数据类型
一.基本数据类型 byte.short.int.long(整数类型) float.double(浮点数类型) char(字符型) boolean(布尔类型 ) Java数据大多数存放在堆栈中.栈区:存 ...
- java对于数组的定义_Java中方法的定义与使用,以及对数组的初步了解。
方法 方法的含义 定义: 方法就是用来完成解决某件事情或实现某个功能的办法. 方法实现的过程中,会包含很多条语句用于完成某些有意义的功能--通常是处理文本,控制输入或计算数值. 我们可以通过在程序代码 ...
- java string 后几位_java中String占几个位元组
java中String占几个位元组以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! java中String占几个位元组 J ...
- java有没有回调函数_Java中的回调函数 - wangjianme的个人空间 - OSCHINA - 中文开源技术交流社区...
Java代码的回调函数经常由框架或是系统定义,由程序开发人员填充. 它的最主要特点是即定义了调用的规范同时又非常的灵活. 回调函数有些类似于观察者模式,它们的区别在于:观察者模式返回的参数为Event ...
最新文章
- 为什么你老是讲不清楚js的继承模式
- 互联网协议 — TCP — 性能问题解析
- python调用系统_python 执行系统命令
- 一周学C#之第4天——语句
- kylin操作系统是什么
- 小米mini php,小米路由器mini刷华硕固件的教程
- android studio 补间动画,Android动画学习(一):帧动画和补间动画
- omf多路径 oracle_Oracle数据库使用OMF来简化数据文件的管理
- 图片风格迁移:基于实例缓解细节丢失、人脸风格化失败问题
- 【NOI2007】社交网络
- 会解方程会画图的超级计算器
- 【STM32】IO引脚复用器和映射原理与配置
- Win10如何彻底禁用小娜?彻底禁用小娜的方法
- 美国智能网联最新政策动态(2021年9-11月)
- 删除服务残留注册表_流氓软件卸载残留?不存在的!软件里的扫地僧来了~
- 字符串应用,expect预期交互,数组,正则表达式
- 她26岁成中科大博导:我是工作上灭绝师太,生活中女汉子
- 深圳Java培训:Java和大数据的关系
- CISCO asa5520 端口映射
- 百度凤巢助纣为虐 网游盗号百度难逃罪责
热门文章
- java 写一个商店_Java Web开发之基于Session的购物商店实现方法
- R语言使用ggplot2包使用geom_boxplot函数绘制基础分组箱图(分组箱体框颜色自定义配置)实战
- R语言使用ggplot2包和ggQC包可视化帕累托图(Pareto chart)
- R语言plyr包round_any函数将向量数据近似到任意精度实战
- 简要介绍一下贝叶斯定理( Bayes‘ theorem)
- 机器学习+优化问题的种类、如何优化、凸优化、非凸优化、对偶问题、KKT条件
- 服务器虚拟化集成项目投标方案,服务器虚拟化投标技术方案(纯方案,16页).doc...
- 数据结构与算法:算法简介
- 数字图像处理2:传统插值
- 试编写一个汇编语言程序,大写---小写 要求对键盘输入的大写字母用小写字母显示出来。