网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > Java精品代码 > 正文

java之break、continue关键字配合标签使用,实现跳转功能

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

知识点:continue和break配合标签实现跳转功能
      尽管java中goto是一个保留字,但在语言中并未使用它,Java没有goto。然后java也可以完成一些类似于跳转的操作,那就是将break和continue配合标签一起使用标签是后面跟有冒号的标识符,就像下面这样:

lable1:
      在java中,标签起作用的唯一地方刚好是在迭代语句之前。“刚好之前”的意思表明,在标签和迭代之间置入任何语句都不好。而在迭代之前设置标签的唯一理由是:我们希望在其中嵌套另一个迭代或者一个开关。这是由于break和continue关键字通常只中断当前循环,但若随同标签一起使用,它们就会中断循环,直到标签所在的地方:
下面是标签用于for循环的例子:

public class LabledFor{
    public static void main(String args){
        int i = 0;
        outer:
            for(;true;){
                inner:
                    for(;i<10;i++){
                        System.out.println("i="+i);
                        /**在抵达for循环的末尾之前,递增表达式会执行*/
                        if(i==2){
                            System.out.println("continue");
                            continue;
                        }
                        /**break会中断for循环,而且在抵达for循环的末尾之前,递增表达式不会执行。由于
                         * break跳过了增量表达式,所以在此处直接对i进行递增操作*/
                        if(i==3){
                            System.out.println("break");
                            i++;
                            break;
                        }
                        /**continue outer语句会跳到循环顶部,而且也会跳过inner标签下的for循环的递增,
                         * 所以这里也对i直接递增*/
                        if(i==7){
                            System.out.println("continue outer");
                            i++;
                            continue outer;
                        }
                        if(i==8){
                            System.out.println("break outer");
                            break outer;
                        }
                        /**在抵达inner标签下的for循环末尾之前,inner下的for循环的递增表达式会执行*/
                        for(int k = 0;k< 5;k++){
                            if(k==3){
                                System.out.println("continue inner");
                                continue inner;
                            }
                        }
                    }
            }
    }
}

输出:
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 outer语句,就没有办法从内部循环里跳出外部循环。这是由于break本身只能中断最内层的循环(continue也是同样如此)。
下面的例子展示了带标签的break以及continue语句在while循环中的用法:

public class LabledWhile{
    public static void main(String args){
        int i = 0;
        outer:
            while(true){
                System.out.println("Outer while loop");
                while(true){
                    i++;
                    System.out.println("i="+i);
                    if(i==1){
                        System.out.println("continue");
                        continue;
                    }
                    if(i==3){
                        System.out.println("continue outer");
                        continue outer;
                    }
                    if(i==5){
                        System.out.println("break");
                        break;
                    }
                    if(i==7){
                        System.out.println("break outer");
                        break outer;
                    }
                }
            }
    }
}

输出:
Outer while loop
i=1
continue
i=2
i=3
continue outer
Outer while loop
i=4
i=5
break
Outer while loop
i=6
i=7
break outer

同样的规则亦适用于while:

1、一般的continue会退回最内层循环的开头(顶部),并继续执行
2、带标签的continue会达到标签的位置,并重新进入紧接在那个标签后面的循环
3、一般的break会中断并跳出当前循环
4、带标签的break会中断并跳出标签所指的循环

 

TAG: JavaJAVAjava关键字




点击下载系统:http://www.myeducs.cn/chaxun/index.html?go=java之break、continue关键字配合标签使用,实现跳转功能&aa=%CB%D1%CB%F7%C2%DB%CE%C4
设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师