请问这段程序执行的顺序或者过程?

来源:百度知道 编辑:UC知道 时间:2024/07/07 11:05:01
public class J_Test{
public static void main(String args[]){
int sum=0;
outer:
for(int i=1;i<10;i++){
inner:
for(int j=1;j<3;j++){
sum+=j;
if(i+j>6) continue outer;

}
}
System.out.println("sum="+sum);
}
}

请各位帮我看看他执行的原理,尤其在continue outer;这个地方不明白,请指教~~~
问题还在于 if(i+j>6) continue outer;这里,为什么答案能算到19呢?

for循环你是知道的吧,你只是不明白continue对吧,continue就是结束这一次循环,直接进入到下一个循环,之所以这里要continue out是因为程序需要进入下一轮外循环,否则默认情况下continue的是最近的循环,也就是这个程序的内循环
-----------------------------------------------------------
那你还有什么不明白?自己算一下就知道了,或者用调试工具一步步走下来也行

内循环其实就是j=1到2,外循环是i等于1到9,当i=1-4的时候,i+j是不会大于6的,所以i=4结束的时候sum=4*(1+2)=12,i=5的时候,j=1时,sum=13,j=2时,sum=15,这时判断出i+j>6,但是循环本来就结束了。接下来i=6-9,都是只会执行sum+=1,(那时j=1),然后就判断出i+j>6了,于是执行下一次的外循环,这样就对sum加了4次1,也即总共19