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小白如何入门,如何安排学习路线,每一步应该怎么走比较好.原本我以为之前的几篇文章已经可以解决大家的问题了,其实不然,因为我之前写的文章都 ...
随机推荐
- Laravel 5.* 执行seeder命令出现错误的解决方法
最近在使用Laravel开发一个项目,测试中需要增加数据库基础数据动作,当第一次执行完`php artisan db:seed` 后,增加新的seeder文件时执行会报错.错误信息如下`[Reflec ...
- Activiti - 新一代的开源 BPM 引擎
http://www.ibm.com/developerworks/cn/Java/j-lo-activiti1/ ****************************************** ...
- 慎用curl测网站速度
curl的计时功能也许不够准确. curl -s -o /dev/null -w %{time_total} g.cn 耗时(秒) 0.1350.1340.1350.1350.1340.132 ab ...
- P1097 方程的整数解
题目描述 给定一个整数N,求方程 \(x^3-x^2-x=N\) 的整数解. 保证解的范围在 \([-100,100]\) 范围内. 输入格式 一行一个整数 \(N(-10^6<=N<=1 ...
- java 利用TCP上传文件
从客户端上传到服务器端,其实本质上也就是复制! package july76net; //上传文件(文本) import java.io.BufferedReader; import java.io. ...
- JOISC2014 Day2 E "交朋友" (思维+假的SCC)
传送门 题目描述 你是活跃在历史幕后的一名特工,为了世界和平而夜以继日地努力着. 这个世界有N个国家,编号为1..N; 你的目的是在这N个国家之间建立尽可能多的友好关系. 你为了制定一个特工工作的计划 ...
- java 基本数据类型的自动拆箱与装箱
——> -128~127之间的特殊性.为什么要这样设计,好处? ——> 享元模式(Flyweight Pattern):享元模式的特点是,复用我们内存中已存在的对象,降低系统创建对象实 ...
- win2d 通过 CanvasActiveLayer 画出透明度和裁剪
本文告诉大家如果在 UWP 的 win2d 通过 CanvasActiveLayer 创建一层,在这里画出的图片有透明度或者裁剪 在 win2d 如果需要对某个元素裁剪,可以使用很多方法,本文只是告诉 ...
- 【b503】篝火晚会
Time Limit: 1 second Memory Limit: 50 MB [问题描述] 佳佳刚进高中,在军训的时候,由于佳佳吃苦耐劳,很快得到了教官的赏识,成为了"小教官" ...
- ASP.NET MVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(3)
接下来完成用户.角色的增删查改,以及用户角色.权限的设置 对用户表.角色表做了一些扩展如下[可以更加自己需要增减字段] 相应的M_UserProfile.cs.M_Roles.cs进行扩展 using ...