如下代码输出结果为什么是10,我认为应该是55。
<!DOCTYPE html>
<head>
<title>
Break Statement
</title>
</head>
<body>
<script type="text/javascript">
var num = 0,
i = 0,
j = 0;
outermost:
for( ; i<10; i++){
for( ; j<10; j++){
if( i==5 && j==5){
break outermost;
}
num ++;
}
}
alert(num);// i think it should be 55.
</script>
</body>
</html>
当内层循环结束回到你设定的地方时候,再循环,j已经不是0,而是10了,总是不满足内层,所以就在i 这里循环十次,退出num=10记录的是
i=0 ,j=0...9,这十次之和,明白了吧
if( i==5 && j==5)
这两个条件同时满足,内侧循环需要55次。因为外侧循环前五次都不满足,此时内侧循环执行50次。
for( ; i<10; i++){
for( ; j<10; j++){//------------在这里执行一次for时j到10了,之后循环就再也没有进来了
if( i==5 && j==5){
break outermost;
}
num ++;
}
}