Java中break、continue及标签等跳转语句的使用[上]
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即可。
Java中break、continue及标签等跳转语句的使用[上]的更多相关文章
- Java中break、continue及标签等跳转语句的使用[下]
		作为上一篇使用for循环演示的跳转,这一篇将使用while.相比较来说,while比for循环更简单.代码如下: public class LabeledWhile { public static v ... 
- Java中 break continue return 的区别
		1.break break :跳出当前循环:但是如果是嵌套循环,则只能跳出当前的这一层循环,只有逐层break才能跳出所有循环: ; i < ; i++) { ) { break; // 在执行 ... 
- java中break和continue跳出指定循环(转载)
		java中break和continue跳出指定循环 java中break和continue可以跳出指定循环,break和continue之后不加任何循环名则默认跳出其所在的循环,在其后加指定循环名,则 ... 
- Java中关键字continue、break和return的区别
		Java中关键字continue.break和return的区别: continue:跳出本次循环继续下一次循环 break: 跳出循环体,继续执行循环外的函数体 return: 跳出整个函数 ... 
- java中break、continue、return作用
		java中break.continue.return作用 0.首先要明确:break和continue是作用对象是循环体:而return的作用对象是方法 break:在执行完本次循环后,跳出所在的循环 ... 
- java中break,continue,标签实现goto效果(编程思想)
		goto 编程语言中一开始就有goto关键词了.事实上,goto起源于汇编语言的程序控制:“若条件A成立,则调到这里:否则跳到那里”. goto语句时在源码级别上的跳转,这导致了其不好的名誉.于是go ... 
- Java中break和continue跳出指定循环
		https://www.cnblogs.com/miys/p/b7f6a463bc58785d74a8a7fccd1f1243.html 在Java中,break和continue可以跳出指定循环,在 ... 
- Java 中 break和 continue 的使用方法及区别
		break break可用于循环和switch...case...语句中. 用于switch...case中: 执行完满足case条件的内容内后结束switch,不执行下面的语句. eg: publi ... 
- Java中break、continue和return三者之间的区别
		控制流程语句 java关键字break.continue.return主要按三个纬度去区分. 作用不同 结束不同 紧跟不同 一.作用不同 1.break:执行break操作,跳出所在的当前整个循环, ... 
随机推荐
- 从源码角度看Transaction以及如何手工接管Transaction实现高度的自定义化
			一:transaction CUD: 在一个transaction中... transaction: start add.... delete... update... transaction: co ... 
- Apache 中httpd.conf文件配置详解(转载)
			httpd.conf文件配置详解 Apache的基本设置主要交由httpd.conf来设定管理,我们要修改Apache的相关设定,主要还是通过修改httpd.cong来实现.下面让我们来看看htt ... 
- 2015-9-13 NOIP模拟赛解题报告(by hzwer)
			小奇挖矿 「题目背景」 小奇要开采一些矿物,它驾驶着一台带有钻头(初始能力值w)的飞船,按既定路线依次飞过喵星系的n个星球. 「问题描述」 星球分为2类:资源型和维修型. 1.资源型:含矿物质量a[i ... 
- day10学python  socket用户交互+MD5加密
			socket用户交互+MD5加密 利用socket从client传输文件指令于server 再返还字节大小与内容 socketserver的使用(重要) 注意: ##client.recv(1024) ... 
- Elasticsearch学习(1) Spring boot整合Elasticsearch
			本文的Spring Boot版本为1.5.9,Elasticsearch版本为2.4.4,话不多说,直接上代码. 一.启动Elasticsearch 在官网上下载Elasticsearch后,打开bi ... 
- Centos系统优化
			系统优化脚本 #!/bin/bash #author junxi by #this script is only for CentOS 7.x #check the OS platform=`unam ... 
- UDF-java获取名字中的姓
			1.使用方法 在hive中加载jar包,调用udf函数 #从名字中获取姓 add jar ${scriptDir}/GetLastNameUDF.jar; create temporary funct ... 
- Python自动发送HTML测试报告
			在我们做自动化测试的时候,执行完所有的测试用例,我们是希望马上得到结果的,那么我们不可能一直盯着去看,这个时候就需要引入邮件功能 1.首先我们使用一个python的第三方发邮件的库 yagmail g ... 
- Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名
			Oracle数据库,用mybatic批量插入数据: <insert id="saveBatch" parameterType="io.renren.entity.N ... 
- 洛谷 P3224 [HNOI2012]永无乡
			题面 永无乡包含 \(n\) 座岛,编号从 \(1\) 到 \(n\) ,每座岛都有自己的独一无二的重要度,按照重要度可以将这 \(n\) 座岛排名,名次用 \(1\) 到 \(n\) 来表示.某些岛 ... 
