break和continue特殊玩法“标签”
java标签顾名思义就是在指定的地方打个标记,程序执行到某个特定的地方返回到标记处,再执行某些操作。
介绍“标签”先要介绍break和continue关键字。
break关键字:指停止当前代码块
continue关键字:指停止当次代码块
为什么说“代码块”看了下面就知道,break和continue不光可以在for,while,switch等使用。
问题1.
当内侧循环i等于2时,结束两层循环?
//设双层循环,外层i,内层j for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {if(i==2)break; //结束两层循环System.out.println(j+" "+i);} }
结果发现break是无法结束两层循环,因为它只能结束内层循环。这个问题如果层数增多为三层可能更加力不从心啊!
//设双层循环,1层i,2层j, 3层k for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {for (int k= 0; k < 3; k++) {if(j==2)break; //结束2层 j 循环System.out.println(j+" "+i+" "+k);}} }
问题2.
当2层循环j等于2时,停止1层循环接着运行
for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {if(i==2)continue; //停止当次i的循环System.out.println(j+" "+i);} }
同样的问题也出现在continue上,有时候算法就是这么“恶心”。同样的问题也可能出现在三层循环中
for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {for (int k= 0; k < 3; k++) {if(j==2)continue; //停止当前j层循环System.out.println(j+" "+i+" "+k);}} }
提了两个问题就开始介绍“标签”了。
格式: 标签名 : 代码块
介绍:标签名 就是英文单词随意写
代码块 这个地方经测试 只要被 “{ }”包裹的代码块都可以使用。
实验:
//代码1 lable1:for (int i = 0; i < 3; i++) {lable2:for (int j = 0; j < 3; j++) {if(i==2)break lable1; //停止lable1System.out.println(j+" "+i);} }//代码2 Integer[] a ={1,2,3,4}; Integer[] b ={1,2,3,4}; lable1:for (Integer a1 : a) {lable2:for (Integer a2 : b) {if(a1==1)break lable1; //停止lable1 } }//代码3 Integer a=1; boolean c=true; boolean d=true; lable1:while (c) {lable2:while (d) {a++;if(a==3)break lable1; //停止lable1 System.out.println(a);} }//代码4 重点介绍 Integer a= 1; label1:{System.out.println(a++);if(a==2) break label1; //停止lable1 }
重点介绍代码4,为什么呢?
因为这个就是标签的魅力了,你完全可以套很多层。甚至可以编写一套自己逻辑的循环体。
Integer a= 1; label1:{lable2:{System.out.println(a++);if(a==2) break label1;} }
“标签”的特点就是做标记,利用break和continue关键字就可以任意跳转和跳出。从而解决上面两个问题了。
合理的运用break和continue配合“标签”的使用,可以写出很好的算法,解决算法中奇葩的跳出和跳转。但是缺点也是明显的就是“思路很乱”。不会的慎用!!!
转载于:https://www.cnblogs.com/wy51/p/4421940.html
break和continue特殊玩法“标签”相关推荐
- 14.JavaScript循环while、for、dowhile、break、continue、跳转标签
文章目录 while.for循环 while 循环 语法 循环条件 危险的死循环 只有一行语句的循环 do {...} while 语法 do {...} while的特点 for 循环 语法 for ...
- MSIL实用指南-生成break和continue
break和continue本质都是标签的跳转 转载于:https://www.cnblogs.com/tkt2016/p/8807420.html
- Java中的break和continue关键字使用总结
java中的break和continue关键字使用总结 一.作用和区别 break的作用是跳出当前循环块(for.while.do while)或程序块(switch).在循环块中的作用是跳出当前正在 ...
- Kotlin专题「四」:逻辑控制语句(if、for、when、while、return、break、continue)
前言: 有些路看起来很近,可是走下去却很远,缺少耐心的人永远走不到尽头.人生,一半是现实,一般是梦想. 一.概述 前面几篇文章中讲解了 Kotlin 的常量.变量.数据类型和作用域函数等,与 Ja ...
- Java中带标签的break和continue
Java中带标签的break和continue 目录 Java中带标签的break和continue 1.单独使用break 2.带标签的break 3.单独使用continue 4.带标签的cont ...
- 「天猫代运营」精准标签玩法,引爆新品手淘搜索流量
「天猫代运营」精准标签玩法,引爆新品手淘搜索流量 首先不管怎么样,做电商都是要讲事实,看数据的我们先看下以下几个案例,以下几个案例都是近期在操作的新品,并且都刚刚经历第一波流量爆发期 案例一:06-1 ...
- 微信小游戏的前端攻城狮玩法
转自自己在开源中国上的博客:https://my.oschina.net/u/7247... 前言 公司群里经常有人会发一些微信小游戏,每次下面都会跟好多晒分截图.比如这个<看你有多色>的 ...
- java编写一个彩票开奖的模拟程序.游戏共有两种玩法,一种是21选5,即玩家输入5个1到21内的不重复的数。另外一种玩法是6+1玩法,即要求玩家输入7个整数,代表所购买的彩票号码,最后一个是特码。
java编写一个彩票开奖的模拟程序.游戏共有两种玩法,一种是21选5,即玩家输入5个1到21内的不重复的数.另外一种玩法是6+1玩法,即要求玩家输入7个整数,代表所购买的彩票号码,最后一个是特码. 具 ...
- JAVA基础复习之顺序结构、选择结构、循环结构、break、continue、goto
顺序结构 JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行. 顺序结构是最简单的算法结构. 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组 ...
最新文章
- RESTful之路由Routers
- 《互联网运营智慧》十一月进展
- c 语言epc编码如何解开,EPC编码结构
- 确定一个整数是否是2的幂
- 你了解中国的中小企业了吗?
- linux没有检测到触摸板,linux – 制作没有按钮的触摸板,就像带有按...
- java1.8 64位,jdk 1.8 64位 下载_jdk 1.8 64位 官方版_魅蓝下载
- python经典编程100例(1)
- 通达信 移动平均算法_通达信公式教程,建议收藏,关注「所有文章只发表一次」...
- python+django+动态生成word
- Hypervisor技术
- UE4 打包设置全屏模式和窗口模式方法
- 分享一组超喜欢的粉色樱花高清壁纸~
- Bluetooth Core Architecture Blocks----蓝牙核心架构
- 一阶IIR数字滤波器的设计
- weblogic T3协议(附python脚本)
- 每日一面 - mysql中,innodb表里,某一条数据删除了之后,这条数据会被真实的擦掉吗,还是删除了关系?
- 小爱同学点灯出现要操作的设备好像出问题了等一会再试吧的问题解决办法
- win10字体模糊怎么调节
- 疫情当前,数字工厂的未来:IIOT和工业4.0
热门文章
- 利用dos管道命令获取屏幕内容_汇编语言--常用DOS功能
- android倒计时录制视频下载,android录制视屏(预览,倒计时)
- java cdi是什么意思_Java EE CDI的真正好处
- oracle日期格式更新_oracle 日期格式
- sql增删改查_快速搞定数据库增删改查|附思维导图
- pexpect.spawn timeout 无限_【元气骑士最新无限钻石版】元气骑士游戏无限钻石版下载...
- 研究生应当具备的三种基本技能
- poj3076(16*16数独)
- python编写格斗游戏_Python文字小游戏:搏击比赛
- e站host地址_Linux系统怎么使用命令行查询公网IP地址