带标签的break和continue语句
来源:互联网 发布:网络云盘哪个最好用 编辑:程序博客网 时间:2024/05/11 22:52
尽管无标签的break和continue语句非常常见,但使用标签的语句可以使程序更加紧凑,当然毫无疑问降低了程序的可读性。简单文绉绉地说下无标签的两者是如何工作的:break是退出最内层的循环结构,并跳转到该循环块之外的下一句代码执行。而continue是通常与条件配合使用,如果该循环条件满足,则会继续同一循环块内的下一次迭代。注意红色部分。如果对于break来说,要退出好几层循环,那怎么办?对于continue来说,要执行几层循环体的下一次迭代,怎么实现?请看下边关于break例子:
public class BreakLabel {
public static void main(String[] args) {
boolean isTrue = true;
outer:
for(int i=0; i<5; i++){
for(int j=0; j<30000; j++){
System.out.println("hello");
break outer; //如果没有标签,那么outer loop这句语名将被输出。正因为有标签,直接跳出两层循环
}
System.out.println("outer loop");
}
System.out.println("Good-bye");
}
}
毫无疑问,标识必须符合java命名规则,另外,标签必须直接位于被标识的循环之前,后边加冒号,基本上说明它是一个标签,与下边的紧接的这一个语句同义。而break 标签名;则来用响应标签。下例是continue使用标签的情况:
public class ContinueLabel {
public static void main(String[] args) {
outer:
for(int i=0; i<5; i++){
System.out.println("begin outer loop"); //而因为continue直接退到外层这句话被反复执行到
for(int j =0; j<3; j++){
System.out.println("Hello");
continue outer;
}
System.out.println("end outer loop~~~~~~~~~~~~``"); //因为标签这句话,不会执行到。
}
System.out.println("goodbye");
}
}
使用了标签以后,被看成一个大的循环体。break是刚性的,就象洪水冲上了堤坝一样,一下子就到此为止,有了标签,它更加胡作非为,影响力到标签所达之处。 如果大家愿意的话,看看如下代码能输出什么:
public class TestLabel {
public static void main(String[] args) {
int counter = 0;
ll: for (int i = 0; i < 10; i++) {
gg: for (int j = 0; j < 10; j++) {
if (j > i)
break gg;
if (j == i) {
counter++; //上边的条件能保证这个ll这个循环能执行结束,每一次循环都能保证counter,自增一次,除了第一次进入gg循环,i=0而j=1;被break出gg,没有执行counter++
continue ll; // A labeled continue works only with loops.
}
}
}
System.out.println(counter);
}
}
- 带标签的break和continue语句
- JavaScript中的带标签的break和continue语句
- 带标签的break和continue语句(Java、C++)
- 带标签的 break 和 continue (Java)
- 带标签的 break 和 continue (Java)
- 标签的 break 和 continue 语句
- 标签的 break 和 continue 语句
- java、C++-带标签的break 和 continue语句
- 23_break和continue_带标签的break和continue
- Java 带标签的continue和break的解析
- Java中带标签的 break 和 continue
- Java中带标签的 break 和 continue
- java中带标签的break 和 continue
- 带标签的break和continue(java基础)
- 方法调用与带标签的continue和break
- Java基础知识--带标签的break和continue
- Java带标签循环 break 和 continue
- Java中带标签的break、continue
- 2周项目1
- openglel2.0下载
- (补)第一周 日期结构体
- HDU3367 Pseudoforest
- hdu 1712ACboy needs your help 01背包(分组)
- 带标签的break和continue语句
- 反转链表
- ios UINavigationController
- 学生数据管理
- Ehcache配置文件的详细说明
- delphi中的数据库小结
- 排序算法之冒泡排序(Bubble Sort)
- 把手教你玩转SOCKET模型之重叠I/O篇(下)
- 黑马程序员——内部类、匿名内部类