用for循环,continue语句,有一种输出99乘法表的方法如下:
public class cf{
      public static void main(String args[]){
              a:for(int i=1;i<=9;i++){
              for(int j=1;j<=9;j++){          
                    if(j>i){
                        System.out.println();
                          continue a;
                          }
                    System.out.print(i+"*"+j+"="+i*j+" ");
                
              }                      }      }
}
              我就是想问下,这个continue语句执行过程是?求达人给菜鸟稍微详细的解释下

解决方案 »

  1.   

    内部的 j > i 的时候 内循环就不继续了
    直接跳到外部循环接着下去
      

  2.   

    就是如果j>i的话,就不打印后面的东西,跳转到a处运行!
      

  3.   

    如果 j > i 就不执行System.out.print(i+"*"+j+"="+i*j+" ");
    操作 而是直接在此继续 a 以后的循环  类似于C语言的goto
      

  4.   

    与C++不同,Java还提供了一种带标签的break语句,用于跳出多重嵌套的循环语句。
    如果希望使用一条goto语句,并将一个标签放置在想要跳过的语句块前面,就可以使用break语句!ps: 楼主的例子完全可以使用break代替,省道麻烦。
    public class cf {
        public static void main(String args[]) {
            for (int i = 1; i <= 9; i++) {
                for (int j = 1; j <= 9; j++) {
                    if (j > i) {
                        System.out.println();
                        break;
                    }
                    System.out.print(i + "*" + j + "=" + i * j + " ");            }        }    }
    }
      

  5.   

    楼主可以看下break a; 和continue a;的区别
      

  6.   


    a:for(int i=1;i<=9;i++){
      for(int j=1;j<=9;j++){  
      if(j>i){
      System.out.println();
      continue a;
      }
      System.out.print(i+"*"+j+"="+i*j+" ");
       
      }  }这个是个双层循环体,内部直接简单continue只能“跳出当前循环体的本次循环”,而如果加标签跳,就可以“跳出对应标签循环体的本次循环”,有多少层跳多少层。像3楼说的,类似goto,不过这个只能跳到循环标签位置。
      

  7.   

    “跳出对应标签循环体的本次循环”的意思就是a:for(int i=1;i<=9;i++){
      for(int j=1;j<=9;j++){  
      if(j>i){
      System.out.println();
      continue a;
      }
      System.out.print(i+"*"+j+"="+i*j+" ");
       
      }  }当中,continue a;之后
    “本轮外层循环(i循环)”的后面要执行的都不管了,进入外层循环的下一轮。
    这包括内层本来还要继续执行的
    System.out.print(i+"*"+j+"="+i*j+" ");不会执行了
    而且外层看来本来还要执行的
    for(int j=1;j<=9;j++){...}都不会执行了
      

  8.   

    若if(j>i)这语句成立的话,contunue a 则跳回 a:for(int i=1;i<=9;i++).....继续循环。