Java中break、continue及标签等跳转语句的使用[上]
2024-08-27 20:03:40
java 中跳转语句使用break、continue和标签,各自或组合完成相应的功能。
今天做题时遇到关于标签命名规范,顺便将跳转语句语法都看了一遍,很有收获。
在《Java编程思想》一书中,作者详细阐述,现将案例代码写在下面:
public class LabeledFor { public static void main(String[] args) {
int i=0;
outer:
for(;true;){
inner:
for(;i<10;i++){
System.out.println("i="+i);
if(i==2){
System.out.println("continue");
continue;
}
if(i==3){
System.out.println("break");
i++; //otherwise i never gets incremented
break;
}
if(i==7){
System.out.println("continue outer");
i++; //otherwise i never gets incremented
continue outer;
}
if(i==8){
System.out.println("break outer");
break outer;
}
for(int k=0;k<5;k++){
if(k==3){
System.out.println("continue inner");
continue inner;
}
}
}
} } }
运行结果见下图:
i=0
continue inner
i=1
continue inner
i=2
continue
i=3
break
i=4
continue inner
i=5
continue inner
i=6
continue inner
i=7
continue outer
i=8
break outer
自认为比较重要的一点是,break中断for循环,而且是在抵达for循环的末尾之前,也就是说,递增表达式将不会执行。continue确不会跳过递增语句。
同样的,这个例子中,当i==7的情况下,continue outer语句会跳到循环顶部,而且也会跳过递增。
如果没有break outer,就没有办法从内部循环里跳出外部循环。这是由于break本身只能中断最内层的循环(continue同样如此)。
如果想中断同时退出,简单地用一个return即可。
最新文章
- 升级到macOS 10.12 mysqlb报错ERROR 1045 (28000): Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: NO)
- 大规模web 服务开发技术
- Spark源码学习1.6——Executor.scala
- Java 多态——与C++的比较
- cocos2d-x图层以及显示对象的基本使用
- HITAG 2 125kHz RFID IC Read-Write 256 bits
- UVa 11729 Commando War 突击战
- 安装openshift客户端工具 rhc
- _int、NSInteger、NSUInteger、NSNumber的区别和联系
- eclipse+tomcat+httpServlet初学
- python自动发邮件总结及实例说明
- 01.PHP5.x编译详解
- SLAM入门之视觉里程计(4):基础矩阵的估计
- Android破解学习之路(七)—— 乐秀视频编辑 内购破解 专业版 价值25元的破解
- vue项目在移动端(手机)调试
- spring 循环依赖问题
- 关于string指针
- PostgreSQL9.6+PostGIS2.3学习笔记(一)导入shp文件
- 简单了解Tomcat与OSGi的类加载器架构
- 基于SmartThreadPool线程池技术实现多任务批量处理