1.for(int i=0;i<3;i++)
{
 for(int j=0;j<2;j++)
 (
  if(i==j)
      continue;
  System.out.println("i="+i+"j="+j);  
 )
}2.
Loop1:
for(int i=0;i<3;i++)
{
 for(int j=0;j<2;j++)
 (
  if(i==j)
      continue Loop1;
  System.out.println("i="+i+"j="+j);  
 )
}
这两种可能的i和j的值,有点迷糊

解决方案 »

  1.   

    continue和break默认是对最靠近自己的外层循环起作用,如果加了标号的话,就对标号声明的那层循环起作用,你的代码中,第1个是终止当前循环并继续内层的下一次循环,而第2个是继续外层循环
      

  2.   

    比如说i=0, j=0时
    对于1、
    i==j为true
    不打印i和j的值,继续内层循环,j=1
    内层循环完了,再做外层循环i=1, i=2对于2、
    i==j为true
    直接跳到外层循环,做i=1的时候的情况
    然后内层循环到j=1时
    i==j为true,又跳到Loop1处,做i=2的时候的工作~~
    如此下去而已
      

  3.   


    for(int i=0;i<3;i++)
    {
     for(int j=0;j<2;j++)
     {
      if(i==j)
      continue;     //如果i==j则跳过内循环(for(int j=0;j<2;j++)),进入下一次内循环
      System.out.println("i="+i+"j="+j);   
     }
    }   
    /*输出结果:i=0 j=1
    i=1 j=0
    i=2 j=0
    i=2 j=1
    */
    Loop1:
    for(int i=0;i<3;i++)
      {
    for(int j=0;j<2;j++)
     {
       if(i==j)
    continue Loop1;      //当满足i==j时,直接跳到外循环,执行下一次循环
    System.out.println("i="+i+" j="+j);   
    }
      }
    /*
    输出结果:
    i=1 j=0
    i=2 j=0
    i=2 j=1
    */
      

  4.   


    正确答案。LZ要理解continue和break的区别。。虽然这里没有出现break