Java标签学习
今天早上看Java编程思想第四章控制执行流程,本来很简单的一些东西,但是突然看到了goto发现自己以前还真的没怎么用过,不过Java中对goto作为保留关键字,而是提供了一个叫标签的东西,我们一起来看一下这个有什么用,先解释,在代码
1label1:
2外循环入口
3{
4 内循环入口
5 {
6 break; //(1)
7 continue; //(2)
8 continue label; //(3)
9 break label; //(4)
10 }
11}
(1)break中断内部迭代,回到外部迭代。
(2)continue使执行点移回内部迭代的起始处。
(3)continue label同时中断内部迭代及外部迭代,直接转到label处,随后,它实际上是继续迭代过程,但却从外部迭代开始。
(4)break label也会中断所有迭代,回到label处,但并不从新进入循环,即实际上是完全中止了两个迭代。
下面是我做的实验,感兴趣自己运行一下很简单, 学习就是要多动手
1private static void test1() {
2 System.out.println("=======start=======");
3 lab:
4 for (int i = 0; i < 3; i++) {
5 for (int j = 0; j < 3; j++) {
6 System.out.println(String.format("---- %s --- %s ---", i, j));
7// continue;
8// break;
9// continue lab;
10// break lab;
11 }
12 }
13 System.out.println("=======end=======");
14 }
15
16"-------------------- 各情况下运行结果 --------------------"
17
18//不加任何结束指令
19=======start=======
20---- 0 --- 0 ---
21---- 0 --- 1 ---
22---- 0 --- 2 ---
23---- 1 --- 0 ---
24---- 1 --- 1 ---
25---- 1 --- 2 ---
26---- 2 --- 0 ---
27---- 2 --- 1 ---
28---- 2 --- 2 ---
29=======end=======
30
31//continue;
32=======start=======
33---- 0 --- 0 ---
34---- 0 --- 1 ---
35---- 0 --- 2 ---
36---- 1 --- 0 ---
37---- 1 --- 1 ---
38---- 1 --- 2 ---
39---- 2 --- 0 ---
40---- 2 --- 1 ---
41---- 2 --- 2 ---
42=======end=======
43
44//break;
45=======start=======
46---- 0 --- 0 ---
47---- 1 --- 0 ---
48---- 2 --- 0 ---
49=======end=======
50
51//continue lab;
52=======start=======
53---- 0 --- 0 ---
54---- 1 --- 0 ---
55---- 2 --- 0 ---
56=======end=======
57
58//break lab;
59=======start=======
60---- 0 --- 0 ---
61=======end=======
总结:是否与你预想中一样,要是不一样也没关系,现在学习起来记住它就OK了。
首先我们可以看到其实加不加continue都一样,其实不一样,我们正常开发的时候是会有判断的符合条件的直接终止当次循环,相信大家也一定明白,不明白要多敲几遍就好了。其次我们也会发现 break 和 continue lab 功能是一样的,其实也不然,如果是三层循环呢,那结果可就不一样了,所以一定要多想多做,因为有特殊情况最后我想说,其实在多层的循环中有这样复杂的需求标签也还是很好用的,当然我看网上也有好多人说不要用标签,我个人认为,Java缔造者们能够加入标签这一功能,必然有着其存在的意义与价值,而且有些场景标签的确非常好用,具体要如何选择还是看我们自己
Java标签学习的更多相关文章
- java struts2入门学习--OGNL语言常用符号和常用标签学习
一.OGNL常用符号(接上一篇文章): 1.#号 1)<s:property value="#request.username"/> 作用于struts2的域对象,而不 ...
- java 标签库(核心,xml,sql ,国际化,函数)
java标签库分分为上述几种,一般经常使用的是核心和函数,接下来会分别讲解这几种,和常见的用法. 一般标签库会和el表达式一起使用,所以在学习标签库前最后也学习下el表达式的使用. 导入后展开 可以从 ...
- Java web 学习之旅
java web学习之旅 来公司十天了,感觉已经慢慢地融入了这个环境中,几个学长人都很好,都是在他们帮助下,我才能比较顺利的开始了学习java web的旅途. 来这里学习的第一个阶段是做一个简单的用户 ...
- [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Android(java)学习笔记206:利用开源SmartImageView优化网易新闻RSS客户端
1.我们自己编写的SmartImageView会有很多漏洞,但是我们幸运的可以在网上利用开源项目的,开源项目中有很多成熟的代码,比如SmartImageView都编写的很成熟的 国内我们经常用到htt ...
- Android(java)学习笔记205:网易新闻RSS客户端应用编写逻辑过程
1.我们的项目需求是编写一个新闻RSS浏览器,RSS(Really Simple Syndication)是一种描述和同步网站内容的格式,是使用最广泛的XML应用.RSS目前广泛用于网上新闻频道,bl ...
- Android(java)学习笔记204:自定义SmartImageView(继承自ImageView,扩展功能为自动获取网络路径图片)
1.有时候Android系统配置的UI控件,不能满足我们的需求,Android开发做到了一定程度,多少都会用到自定义控件,一方面是更加灵活,另一方面在大数据量的情况下自定义控件的效率比写布局文件更高. ...
- Java工程师学习指南 初级篇
Java工程师学习指南 初级篇 最近有很多小伙伴来问我,Java小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...
随机推荐
- H3C 不适当的VLAN间路由方式
- H3C DHCP特点
- navicat for mysql (10038)如何解决
1.授权(youpassword修改为你的密码) #本机登陆mysql: $:mysql -u root -p #改变数据库: mysql>use mysql; #从所有主机: mysql> ...
- linux 从用户空间的 I/O 存取
刚刚描述的这些函数主要打算被设备驱动使用, 但它们也可从用户空间使用, 至少在 PC- 类 的计算机. GNU C 库在 <sys/io.h> 中定义它们. 下列条件应当应用来对于 inb ...
- Vue与React比较
与React 相似: (1)虚拟DOM(Virtual DOM) 虚拟DOM的诞生是基于:改变真实的DOM状态远比改变一个JS对象的花销要大的多. 虚拟DOM是一个映射真实DOM的JS对象,当有变化产 ...
- Spring Security学习笔记-自定义Spring Security过滤链
Spring Security使用一系列过滤器处理用户请求,下面是spring-security.xml配置文件. <?xml version="1.0" encoding= ...
- C# 多线程的等待所有线程结束
//前台线程和后台线程唯一区别就是:应用程序必须运行完所有的前台线程才可以退出://而对于后台线程,应用程序则可以不考虑其是否已经运行完毕而直接退出,//所有的后台线程在应用程序退出时都会自动结束 ...
- CSS---cursor 鼠标指针光标样式(形状)
url 需使用的自定义光标的 URL. 注释:请在此列表的末端始终定义一种普通的光标,以防没有由 URL 定义的可用光标. default 默认光标(通常是一个箭头) auto 默认.浏览器设置的光标 ...
- onload事件属性,JQ中的load,ready方法
onload事件属性,JQ中的load,ready方法 前言 页面中的很多操作,需要我们在所需资源下载完成后,才可以进行操作,而资源没有及时下载,我们进行操作的话,是会报错.因此我们需要熟练掌握哪些事 ...
- 根据经纬度查询附近几公里的门店(<5)代表5公里
select * from 表名 where status=1 and isopen =0 and jingyingtype=1 and waimai=1 and bstatus = 1 and (a ...