`

Java中for循环中执行顺序问题及break, continue标签用法

 
阅读更多
public class labeledfor {
  static test monitor = new test();
  public static void main(string[] args) {
      int i = 0;
      outer: // can't have statements here
      for(; true ;) { // infinite loop
           inner: // can't have statements here
           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"

总结:

  (1):一般的continue会退回最内层循环的开头(顶部),并继续执行。
  (2):带标签的continue会到达标签的位置,并重新进入紧接在那个标签后面的循环。
  (3):一般的break会中断并跳出当前的循环。
  (4):带标签的break会中断并跳出标签所指的循环。
要记住的重点是:在Java里面需要使用标签的唯一理由是因为有循环嵌套的存在,而且像从多层嵌套中break或continue。

分享到:
评论

相关推荐

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    如何使用方法的返回值? 166 7.4.4 使用return结束方法 166 7.5 方法重载(overload):给汽车加速添个限制 168 7.5.1 什么是方法的签名 168 7.5.2 什么是重载?为什么要重载? 168 7.5.3 给汽车加个重载的方法...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    如何使用方法的返回值? 166 7.4.4 使用return结束方法 166 7.5 方法重载(overload):给汽车加速添个限制 168 7.5.1 什么是方法的签名 168 7.5.2 什么是重载?为什么要重载? 168 7.5.3 给汽车加个重载的方法...

    【03-流程控制与数组】

    •注意:for循环的循环迭代语句并没有与循环体放在一起,因此即使在执行循环体时遇到continue语句结束本次 循环,循环迭代语句一样会得到执行。 for循环指定多个初始化语句 •for 循环允许同时指定多个初始...

    Java 基础核心总结 +经典算法大全.rar

    while 循环语句do...while 循环for 循环语句 跳转语句 break 语句 continue 语句面向对象 类也是-种对象对象的创建 属性和方法 构造方法 方法重载 方法的重写 初始化 类的初始化 成员初始化 构造器初始化初始化顺序 ...

    Java2游戏编程.pdf

    2.4.3 用break、continue和return提前退出循环 2.5 处理运行时异常 2.5.1 使用try和catch块 2.5.2 使用throws子句 2.5.3 关于流程控制语句的记忆要点 2.6 总结 2.7 练习 第3章 带有类的语言:Java面向对象程序设计 ...

    JAVA基础课程讲义

    break语句和continue语句 47 语句块 48 递归结构 49 本章作业 50 本章上机操作 51 第三章 JAVA面向对象程序开发 52 编程语言发展史 52 类和对象是如何产生发展的?如何进化的? 52 面向对象思想初步(OOP初步Object ...

    自考04747《Java语言程序设计(一)》简答题全集.doc

    在循环中使用break语句将使循环终止,流程跳转到break语句所在的循环外面的第一个 语句继续执行 〔2.5分〕 在循环中使用continue语句将提前结束本次循环,流程跳转到continue语句所在循环的 第一个语句继续执行 〔...

    最新自考04747《Java语言程序设计(一)》简答题全集资料.doc

    在循环中使用break语句将使循环终止,流程跳转到break语句所在的循环外面的第一个 语句继续执行 (2.5分) 在循环中使用continue语句将提前结束本次循环,流程跳转到continue语句所在循环的 第一个语句继续执行 ...

    Java2实用教程.rar

    3 5break和continue语句 习题 第4章类 对象和接口 4 1编程语言的几个发展阶段 4 1 1机器语言 4 1 2过程语言 4 1 3面向对象编程 4 2类 4 2 1类声明 4 2 2类体 4 2 3成员变量和局部变量 4 2 4方法 4 2 5方法重载 4 2 6...

    疯狂JAVA讲义

    4.4.2 使用continue结束本次循环 86 4.4.3 使用return结束方法 87 4.5 数组类型 87 4.5.1 理解数组:数组也是一种类型 88 学生提问:int[]是一种类型吗?怎么使用这种类型呢? 88 4.5.2 定义数组 88 4.5.3 ...

    java基础案例与开发详解案例源码全

    5.4.4 Java中对象的创建和使用127 5.5 属性130 5.5.1 属性的定义130 5.5.2 变量131 5.6 方法132 5.6.1 方法的定义132 5.6.2 构造方法135 5.6.4 方法重载138 5.6.5 自定义方法138 5.6.6 系统提供方法139 5.6.7 方法...

    java初学者必看

    最近正在学习Java,也买了很多的有关Java方面的书籍,其中发现《跟我学Java》这本书,都的很不错啊,所以顺便拿电脑把这本书的目录敲了下来,与大家分享。尤其是那些和我一样初学Java的朋友们,看看哪一节对你有用,...

    javacore:java核心 运算符,控制语句,函数,异常,集合,线程,数组,IO流,网路编程,设计模式,java8,面试相关

    Java基础 java控制流程语句 数据交换 左(右)移 加密 java控制流程语句 switch语句 季节判断 while循环 1+...+100 do while循环 ...jvm类加载顺序决定代码执行顺序 super关键字 方法重写 instanceof关键字 fi

    AIC的Java课程1-6章

    第3版 机械工业出版社  教学内容和要求 知识点 重要程度 使用频度 难度 Java 入门 高 中 易 变量和运算符 高 高 中 控制结构 高 高 易 数组 高 高 中 方法 很高 高 中 封装 很高 很高 难...

    JAVA 范例大全 光盘 资源

    实例12 拜访过程(break和continue) 29 常见问题 for循环初始化问题 31 .第4章 数组 32 实例13 一维数组复制、插入和合并 32 实例14 数组排序 35 实例15 数组搜索 37 实例16 去掉数组重复数字 39 实例17 求...

    超爽的自学课件(java)

    用break和continue以及Java的标签式break和contiune(它们被认为是Java中“不见的gogo”)退出循环;以及用switch实现另一种形式的选择。尽管这些与C和C++中见到的有一定的共通性,但多少存在一些区别。除此以外,...

    Java开发技术大全 电子版

    14.8.1标签(Jlabel)使用示例488 14.8.2按钮(JButton)使用示例491 14.8.3文本框(JTextField)和密码框(JPasswordField)使用示例492 14.8.4文本区(JTextArea)使用示例496 14.8.5复选框(JcheckBox)使用...

    java自学之道

    6.2 for循环语句 6.3 while语句和do-while语句 6.3.1 while语句形式 6.3.2 do-while语句 6.3.3 while语句和do-while语句举例 6.4 break语句和continue语句 6.4.1 break语句 6.4.2 continue语句 二、类和对象 1...

    java经典面试2010集锦100题(不看你后悔)

    C) Java中的封装就是将对象的数据和操作数据的方法相结合,通过方法将对象的数据和实现细节保护起来。 D) Java语言中的多态的含义可以表达为:对外一个接口,内部多种实现。Java语言支持两种多态:运行时多态和编译...

Global site tag (gtag.js) - Google Analytics