3***@qq.com
3***@qq.com
  • 发布:2016-10-13 18:30
  • 更新:2016-12-09 14:00
  • 阅读:1587

请问为什么这段JS代码mun会是55,不应该是5吗?

分类:Native.js

<script type="text/javascript">
var num = 0;
outfor:
for(var i = 0; i < 10; i++) {
for(var j = 0; j < 10; j++) {
if(i == 5 && j == 5) {
break outfor;
}
num++
}
}
alert(num) //55
</script>

2016-10-13 18:30 负责人:无 分享
已邀请:
Trust

Trust - 少说废话

首先,break的条件是i == 5 && j == 5。

然后,条件i===5。i是从0开始累加的,i等于5时进行了5次累加。
那么此时,对应的内部for循环同样执行了5次完整的循环。
也就意味着num++执行了5 * 10次,num也就从0累加至了50。

其次,条件j===5。j从0累加至5,同样执行了5次,也就意味着num++又执行了5次。
与此同时,num++又执行了5次,num从50累加至了55。

最后,两个条件均成立后,程序跳至outfor标签所标识的语句块的结束。

  • 3***@qq.com (作者)

    请问为什么内部执行5次的话会是5*10次呢


    2016-12-09 13:33

3***@qq.com

3***@qq.com (作者)

请问是这样吗?外部for循环循环1次,内部的for循环就会循环10次,外部for循环的i==5时,内部for循环就循环了50次,然后再跳到内部for循环里面让j==5,这样num就循环了55次是吗?老师

该问题目前已经被锁定, 无法添加新回复