break、continue关键字配合标签使用,实现跳转功能
来源:互联网 发布:itunes管理iphone软件 编辑:程序博客网 时间:2024/06/10 16:12
知识点: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会中断并跳出标签所指的循环
- break、continue关键字配合标签使用,实现跳转功能
- break和continue关键字使用总结
- Java中的break和continue关键字使用
- 标签和continue、break的联合使用
- Java break&continue标签的使用
- break与continue标签的使用
- scala中实现break与continue功能
- 跳转语句 break、continue
- break和continue关键字
- break、continue、return关键字
- 标签+break/continue用法
- JScript----Break...Continue...标签
- Java标签-break-continue
- 跳转语句的使用(break,continue,goto,return)
- golang跳转语句goto,break,continue的使用及区别
- 跳转语句break、continue. return
- 跳转语句----break和continue
- each函数不能使用break和continue关键字,替代方法
- 塞维尔所发生的方式的
- 博客最牛的撒旦的十一国庆
- 前沿力量科技
- Java集合框架的知识总结(1)
- 陈伟霆。
- break、continue关键字配合标签使用,实现跳转功能
- Android中textview字体动画
- java.util.ConcurrentModificationException详解
- MFC 文件基本操作的异常情况
- 交互环境下的把数值转化为货币单位
- 成佩涛——iPviking:在线黑客攻击可视化地图
- Android的一些基本概念小整理
- 安卓开发-Activity中finish() onDestroy() 和System.exit()的区别
- SharedPreferences详解