public class TestBreak {
public static void main (String [] args) {
outer:
for(int i=1;i<10;i++) {
inner: 
for(int j=1;j<4;j++) {
if(i==2&&j==2)
break outer;
System.out.println("i="+i+"j="+j);
}
}
}
}结果为
i=1 j=1
i=1 j=2
i=1 j=3
i=2 j=1
for(int i=1;i<10;i++)     i在这里不是已经递增了吗?为什么上来的结果还是i=1?他不是应该网上升吗?为什么答案是三个1?

解决方案 »

  1.   

    不是 你想的那样  的 是 执行 完 for 里的 语句 才 ++
      

  2.   


    public class TestBreak {
    public static void main (String [] args) {
    outer:
    for(int i=1;i<10;i++) {
    inner:  
    for(int j=1;j<4;j++) {
    if(i==2&&j==2)
    break outer;
    System.out.println("i="+i+"j="+j);
    }
    }
    }
    }
    有2个循环
      

  3.   

    调下格式public class TestBreak {
    public static void main(String[] args) {
    outer: for (int i = 1; i < 10; i++) {
    inner: for (int j = 1; j < 4; j++) {
    if (i == 2 && j == 2)
    break outer;
    System.out.println("i=" + i + "j=" + j);
    }
    }
    }
    }
      

  4.   

    for(int i=1;i<10;i++) 就是从i=1开始循环,执行完一次后才i++再从i=2开始,直到i>=10时结束循环
      

  5.   

    LZ用的是&&是且,
    当i==2和j==2都等于2时才break,所以当i==1时,里面的要循环完后i才++
    所以LZ出来的是三个1
      

  6.   

    楼主for语句还没搞清楚啊 这可是基础如7楼所说 应该能明白了吧