continue和break可以改变循环的执行流程,但在多重循环中,这两条语句无法直接从内层循环跳转到外层循环。在C语言中,可以通过goto语句实现多重循环的跳转,但在非循环结构中使用goto语句会使程序的结构紊乱,可读性变差。因此Java就发明了一种带标签的continue和break语句,实际上它是一种带限制的专门用于循环的goto语句。

通常情况下我们使用的continue(或break)语句不带标签,这时也就是默认在当前的循环中执行continue(或break)语句。带标签的循环实际上就是给这个循环起了个名字,当使用“continue(或break)+标签”语句时实际上就是在标签所在的循环执行continue(或break)语句。

现在我们用三个例子来说明带标签的循环。

1. 不带标签的二重循环

package javaleanning;

public class LableTest {

public static void main(String[] args) {

for(int i = 0; i < 10; i++){

for(int j = 0; j < 10; j++){

System.out.print("("+i+","+j+") ");

}

System.out.println();

}

}

}

运行结果

(0,0) (0,1) (0,2) (0,3) (0,4) (0,5) (0,6) (0,7) (0,8) (0,9)

(1,0) (1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (1,7) (1,8) (1,9)

(2,0) (2,1) (2,2) (2,3) (2,4) (2,5) (2,6) (2,7) (2,8) (2,9)

(3,0) (3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (3,7) (3,8) (3,9)

(4,0) (4,1) (4,2) (4,3) (4,4) (4,5) (4,6) (4,7) (4,8) (4,9)

(5,0) (5,1) (5,2) (5,3) (5,4) (5,5) (5,6) (5,7) (5,8) (5,9)

(6,0) (6,1) (6,2) (6,3) (6,4) (6,5) (6,6) (6,7) (6,8) (6,9)

(7,0) (7,1) (7,2) (7,3) (7,4) (7,5) (7,6) (7,7) (7,8) (7,9)

(8,0) (8,1) (8,2) (8,3) (8,4) (8,5) (8,6) (8,7) (8,8) (8,9)

(9,0) (9,1) (9,2) (9,3) (9,4) (9,5) (9,6) (9,7) (9,8) (9,9)

2. 带标签的二重循环,“break+标签”语句

在这个例子中是个二重for循环,我们给外层循起始处加了标签(也就是说给外层循环起了个名字)“outerCycle”,在内层循环使用“break outerCycle”时,就相当于在outerCycle这个循环中直接使用break语句。

package javaleanning;

public class LableTest {

public static void main(String[] args) {

outerCycle:

for(int i = 0; i < 10; i++){

for(int j = 0; j < 10; j++){

if(j == 5){

break outerCycle;

}

System.out.print("("+i+","+j+") ");

}

System.out.println();

}

}

}

运行结果

(0,0) (0,1) (0,2) (0,3) (0,4)

3. 带标签的二重循环,“continue+标签”语句

在这个例子中是个二重for循环,我们给外层循起始处加了标签(也就是说给外层循环起了个名字)“outerCycle”,在内层循环使用“continue outerCycle”时,就相当于在outerCycle这个循环中直接使用continue语句。

package javaleanning;

public class LableTest {

public static void main(String[] args) {

outerCycle:

for(int i = 0; i < 10; i++){

for(int j = 0; j < 10; j++){

if(j == 5){

continue outerCycle;

}

System.out.print("("+i+","+j+") ");

}

System.out.println();

}

}

}

运行结果

(0,0) (0,1) (0,2) (0,3) (0,4) (1,0) (1,1) (1,2) (1,3) (1,4) (2,0) (2,1) (2,2) (2,3) (2,4) (3,0) (3,1) (3,2) (3,3) (3,4) (4,0) (4,1) (4,2) (4,3) (4,4) (5,0) (5,1) (5,2) (5,3) (5,4) (6,0) (6,1) (6,2) (6,3) (6,4) (7,0) (7,1) (7,2) (7,3) (7,4) (8,0) (8,1) (8,2) (8,3) (8,4) (9,0) (9,1) (9,2) (9,3) (9,4)

注意:实际运行结果全部在一行显示(即没有执行换行语句),现在这样的显示结果仅仅是出于排版的原因

java 循环标记_深入浅析Java 循环中标签的作用相关推荐

  1. java 注解 框架_深入浅析Java注解框架

    我们经常会在java代码里面看到:"@Override","@Target"等等样子的东西,这些是什么? 在java里面它们是"注解". 下 ...

  2. java异常标记_如何修复'java.io.IOException异常:toDerInputStream在上启动spring应用程序时拒绝标记类型60'本地主机:8443...

    我们正在使用Java8和springframework开发一个web应用程序. 这个很好用. 现在我们想添加一个新的环境(开发). "Development"的配置与"T ...

  3. java finally用法_深入浅析java中finally的用法

    finally作为异常处理的一部分,它只能用在try/catch语句中,并且附带一个语句块,表示这段语句最终一定会被执行(不管有没有抛出异常),经常被用在需要释放资源的情况下. 之前在写爬虫的时候数据 ...

  4. 浅析SEO优化中标签的作用?

    目前,已经有很多企业网站有专门的优化人员来进行SEO优化,在网站SEO优化的过程中会使用到很多标签来利于搜索引擎的读取,提升网站的排名和权重.就以大连网龙科技旗下产品云霸屏为例来讲,云霸屏作为一款全网 ...

  5. java 遍历二进制_读取二进制文件并循环遍历每个字节

    在Python中读取二进制文件并循环遍历每个字节 Python 3.5中的新功能是 pathlib 模块,它有一个特别方便的方法来读取文件中的字节,允许我们迭代字节 . 我认为这是一个体面的(如果快速 ...

  6. java 注释标记_如何标记,像老板一样注释内容

    java 注释标记 总览 (Overview) As a writer and content creator, I often use annotation and drawing markup t ...

  7. java语言里的事件_深入浅析java语言的事件处理

    在JAVA程序设计中,事件的处理是非常重要的,尤其是在需要自定义事件和设计JavaBean时.对事件的处理过程有一个完整的认识对于编程是很有帮助的. 下面用一个演示性的例子来说明事件及其处理过程 一. ...

  8. java 异常机制_深入理解Java异常处理机制

    一.引子 try-catch-finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解.不过,我亲自体验的"教训"告诉我,这个东西可不是想象中 ...

  9. java 同步锁_死磕 java同步系列之自己动手写一个锁Lock

    问题 (1)自己动手写一个锁需要哪些知识? (2)自己动手写一个锁到底有多简单? (3)自己能不能写出来一个完美的锁? 简介 本篇文章的目标一是自己动手写一个锁,这个锁的功能很简单,能进行正常的加锁. ...

最新文章

  1. Xilinx SDK中分配变量的存储地址
  2. Selenium | 网上教程
  3. [摘记]数值方法04——函数求值
  4. 01_01 JSP基础语法之Scriptlet
  5. “年薪 45 万美元的 Netflix 开发工作,我不要了”
  6. win7开放80端口
  7. JS--我发现,原来你是这样的JS:面向对象编程OOP[3]--(JS继承)
  8. 树莓派 HC-SRO4超声波测距模块的使用
  9. @RequestMapping、@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping详解
  10. Matplotlib绘制春节休假表
  11. ce修改面板属性_改属性【dnfce修改器吧】_百度贴吧
  12. uniapp开发h5微信授权登录(详细教程)
  13. sqlmap 清除缓存记录
  14. 曾仕强《领导的沟通艺术》
  15. 在vs中char类型的实参与LPCWSTR类型的形参类型不兼容怎么解决?
  16. cdn perl_用perl对CDN节点日志进行统计
  17. OpenGL ES 绘制图片
  18. 写给自己的学习计划(迷惘找不到方向的时候就看
  19. linux系统正常的运行状态是,一种用于监控Linux系统运行状态的监控系统及方法...
  20. 中国最美的100句诗

热门文章

  1. VUE 数据绑定模块渲染 computed(实现通过路由id 查询数据json结构,对应的值来放在面包屑中)...
  2. 面向对象之继承与派生
  3. Django基本命令
  4. keil优化等级设置
  5. 状态开关(ToggleButton)
  6. Radar Installation
  7. windows apache 开启 GZIP
  8. 理解杀毒软件技术的意义 脱壳、虚拟、启发式介绍
  9. 对网络数据包进行嗅探
  10. [Java核心技术(卷Ⅰ)] - 判断相等