public class Question0105 { public Question0105(){  }  public static void main(String[] args) {    Question0105 question01051 = new Question0105();    int count = 0;    for (int i = 0; i < 2; i++) {      resume:          for (int j = 0; j < 2; j++) {            for (int k = 0; k < 4; k++) {              count=count+1;              if (i == 0 && j == 0 && k == 0) {                 break resume;              }            }        }      }      System.out.println("\tcount=" + count);  }}
为什么结果是9,不是4呢!怎么想也不通

解决方案 »

  1.   

    for (int i = 0; i < 2; i++) {      resume:          for (int j = 0; j < 2; j++) {            for (int k = 0; k < 4; k++) {              count=count+1;     //第一次执行到这里,count=1,下面if条件成立              if (i == 0 && j == 0 && k == 0) {                 break resume;   //跳到 resume标记区的下面,没有j,k仍然为0                 }            }        }//break resume跳到这里,最外循环正常结束,i=1
            //接下去一个大循环后,循环部分结束,count++执行了2*4次,结果为1+8次
          }
      

  2.   

    楼上说的比较详细i只循环1次 i=0,j=0,k=0
    这时候的结果 count = 1  然后跳出 resume 
    重新循环 j (0,1)
    k (0-3)
    共8次 增加count这样最后就是9