因为当i==j时,就会break  跳出j这次循环,回到loop2:处,不会执行输出语句!再执行j++ 的循环,发现i!=j,才会执行输出语句!

解决方案 »

  1.   

    因为i==j时就跳出内层循环了啊,外层循环开始下一次啊!
    continue是结束一次循环,
    而break是结束一层循环啊!
    如:
    for(int i=0;i<9;i++){
        if(i==5) continue;
    }
    跳出后是执行i=6;

    (int i=0;i<9;i++){
        if(i==5) break;
    }
    跳出后是执行for以下的语句啊;
      

  2.   

    break loop2执行后不是执行
    System.out.println("i="+i+"j="+j+"");它跳出了
    for(int j=0;j<3;j++){
         if(i==j){
                 break loop2;
          }
          System.out.println("i="+i+"j="+j+"");
    }
    循环从而执行
    for(int i=0;i<3;i++){...}
    循环只有i<>j时才会执行
    System.out.println("i="+i+"j="+j+"");
      

  3.   

    当i=0,j=0,break loop2.重新for i。i++后i=1,而j又重新int j=0,if(i==j)是判断是否相等,而不是赋值。
      

  4.   

    当i==j的时候,程序执行break loop2;跳出for循环到loop2处,开始下一次循环i++;
    自然输出里没有i==j的项了!
    这可是基础中的基础啊!
      

  5.   

    loop2 标志处是内循环,当i==j时,执行break loop2;退出内循环,但并没退出外循环,接着会执行会下一个i,也就是说i=0时,接着就j=0,i==j,退出内循环,接着i=1,j=1,i!=j,执行System.out.println("i="+i+"j="+j+"");输出i=1 j=0,其余的输出类推。
    如果将break loop2;改为break loop1; 那当i==j时,会退出外循环,这个程序将没有任何的输出。