zoukankan      html  css  js  c++  java
  • break和continue

    break、continue的相关规则如下,while和for同样适用:

      (1)一般的continue会退回最内层循环的开头(顶部),并继续执行

      (2)带标签的continue会到达标签的位置,并重新进入紧接在哪个标签后面的循环

      (3)一般的break会中断并跳出当前循环

      (4)带标签的break会中断并跳出标签所指的循环

    代码示例:

    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++;
                        break;
                    }
                    if(i == 7){
                        System.out.println("continue outer");
                        i++;
                        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)break、continue只能中断最内层的循环;在抵达for循环体末尾之前,递增表达式不会执行。break,continue会跳过递增表达式,故上面示例代码中都有单独自增一次的处理。

      (2)在Java中需要使用标签的唯一理由就是因为有嵌套循环的存在,而且想从嵌套中break或者continue。

      (3)在上篇博文中提及的Dijkstra《Goto有害》论文中,他其实最反对的是标签,而非goto,因为标签和goto的滥用,使得程序难以控制和理解。但是Java中的标签不会,因为他们的应用场合收到了限制(嵌套循环)。由此引出了一个有趣的现象,通过限制语句的能力,反而能使一项语言特性更加有用。

  • 相关阅读:
    【转】C++轻量级可配置语法分析器
    [转载]正则表达式大全
    Batch update returned unexpected row count from update 错误解决方法
    [转载]C# ToString格式字符串整理(Format)(数字、日期和枚举的标准格式设置说明符)(SamWang)
    Centos配置mono环境
    ASP.NET MVC 4 简介
    添加控制器 Adding a Controller
    [转载]OrmHate
    [转载]张小龙谈移动互联网产品
    [转载]Golden Ratio in logo designs
  • 原文地址:https://www.cnblogs.com/promiseslc/p/8633564.html
Copyright © 2011-2022 走看看