请问哪个高手帮我解释一下代码:
//continuelabel.java
class continuelabel{
public static void main(String args[]){
outer:for(int i=1;i<10;i++){
for(int j=1;j<10;j++){
if (j>i){
System.out.println();
continue outer;}
System.out.print(" "+(i*j));
}
}
System.out.println();
}
}
代码:continue outer不是使循环回到for(int i=1;i<10;i++)...那里了吗?怎么还会执行System.out.print(" "+(i*j));这个不是for(int j=1;j<10;j++)里的吗?

解决方案 »

  1.   

    运行结果如下,你可以对照分析一下。1
    2 4
    3 6 9
    4 8 12 16
    5 10 15 20 25
    6 12 18 24 30 36
    7 14 21 28 35 42 49
    8 16 24 32 40 48 56 64
    9 18 27 36 45 54 63 72 81举个例子来说:当i=5时,j =1,2,3,4时就不会执行
    if (j>i){
      System.out.println();
      continue outer;
    }
    而直接执行System.out.print(" "+(i*j));打印出5 10 15 20 25;
    当j增加为5时,执行上面的if语句,跳转到outer:除,此时i++,i=6,再接着如此运行……