代码如下:- package Test;
- 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("contnue inner");
- continue inner;
- }
- }
- }
- }
- }
- }
复制代码 运行结果如下:
i=0
contnue inner
i=1
contnue inner
i=2
continue
i=3
break
i=4
contnue inner
i=5
contnue inner
i=6
contnue inner
i=7
continue outer
i=8
break outer
break会中断for循环,而且在抵达for循环的末尾之前,递增表达式不会执行。由于break跳过了递增表达式,所以在i==3的情况下
直接对i执行递增运算。在i==7的情况下,continue outer语句会跳到循环顶部,而却也会跳过递增,所以这里对i直接递增。
以前一直以为break会直接跳出外层循环,现在在晓得break只会中断内部迭代,回到外部迭代,如果在没有break outer语句,就没有办法从内层循环里跳出外部循环。
|