var num=0;
outermost:
for(var i=0;i<10;i++){
for(var j=0;j<10;j++){
//document.write(i+"<br/>");

if(i==5&& j==5){
//document.write(j);

continue outermost;
}
num++;
}
}
alert(num);
打印出来是95,这个数是如何循环出来的呢?
是当条件不成立时,外部循环每一次,内部循环10次吗?
那么就是90次,另外5次是怎么来的呢?
还望各位大神,详细解答下,万分感谢!

解决方案 »

  1.   

    首先,外部循环10次,内部循环10次,总共应该是100次,if(i==5&& j==5){
                //document.write(j);
                continue outermost;
    }当执行到这里,也就是 i = 5 并且 j = 5时,你写了continue out6ermost,
    这时j > 5的其它条件不再执行,直接执行到外面的i去了。这时i = 6。
    也就是 i = 5时,j >=5就不再向下执行,那么就会有五次没有执行num++
      

  2.   

    如果你把continue outermost 改成continue;  你再看,结果又是什么?看完或许你就明白了。
      

  3.   

    外循环i=5时,内循环j=0到4还是执行num++的,j=5时才 continue outermost 
    之后从i=6,j=0继续循环。这样只路过了,i=5,j=5到i=5,j=9 这5次