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 PPP会话流程
- win10系统激活 快捷方式
系统不定期就会提示激活,每次激活都是找各种工具折腾,今天捣鼓简单的脚本直接激活~~ 首先查看自己系统的版本,后面才能找到合适的激活码 win+R 启动程序 输入 winver 即可查看系统版本 2.查 ...
- vue-cli起项目步骤
1.全局安装 vue-cli 老版本:npm install -g vue-cli (npm uninstall vue-cli -g 卸载) 新版本:npm install -g @vue/cli ...
- H3C VLAN基本配置
- Linux 内核端点
USB 通讯的最基本形式是通过某些称为 端点 的. 一个 USB 端点只能在一个方向承载数 据, 或者从主机到设备(称为输出端点)或者从设备到主机(称为输入端点). 端点可看作一 个单向的管道. 一个 ...
- [Ctsc2014]图的分割
[Ctsc2014]图的分割 阅读理解好题 翻译一下: M(C)就是C这个诱导子图最小生成树最大边权 结论: 按照w进行sort,如果满足w<=Ci,Cj表示u,v的连通块的诱导子图 并且Ci! ...
- vue-learning:27 - component - 组件三大API之二:event
组件三大API之二: event 在上一节中讲到prop单向下行数据绑定的特征,父组件向子组件传值通过prop实现,那如果有子组件需要向父组件传值或其它通信请求,可以通过vue的事件监听系统(触发事件 ...
- nginx负载均衡的几种模式
nginx 的 upstream目前支持 4 种方式的分配 ).轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. ).weight 指定轮询几率,we ...
- HDU1172猜数字 [模拟]
1.题意 任务是猜一个四位数,每次尝试后会给出这次猜中了几个数字和猜中了几个位置,求能否根据尝试的记录给出答案 2.分析 数据给出查询次数和每次查询的数及其有几个数和几个位置符合,值得注意的是,猜对的 ...
- mac 访达修改所有文件夹默认排序方式
先说个误区,下图只能改变当前目录的排序方式 修改所有目录的排序方式需要在顶部的“显示” 中修改