for循环嵌套问题

var num = 0;
outermost:
    for(var i= 0; i < 10; i ++) {
        for(var j= 0; j < 10; j++) {
            if (i == 5 && j == 5){
                break outermost;
            }
            num ++;
        }
    }
alert(num)//55 

知道break是直接跳出label语句执行alert(num)
问:当ij都为5时,num是怎么得到55的?

阅读 5.7k
6 个回答

中止循环条件为i,j同时为5,外部循环中i要从0变为5需要对内部代码执行5次,这时先不管j(因为只有j为5而i不为5还是不符合中止条件的),内部执行了5次循环次数为10的内部循环(num自增10次),所以算起来num自增了5*10次,也就为50了。然后当i=5时,只要将内部循环执行5次(j达到5)就可以中止了,也就是再进行5次num自增,即最后num的值为55,中断循环结束。写的多了点,希望你看得懂哈

同时为5才退出循环,那就是5*10+5,所以num=55

i循环了5次的同时j循环了50次, 到第6次(i=5)时j循环了5次跳出,50+5

break outermost;这个是什么用法,不会报错吗

for循环基本的问题啊,建议你拿张纸一个一个列出来,把循环过程写一遍,这有助于你理解for循环,无关于js,基本的语言都是这么回事,真的,写一遍你就透彻了

新手上路,请多包涵

1.外层循环i从0至4执行5次,内层循环j从0至9执行10次,num增加5 * 10 = 50
2.外层循环i=5时,内层循环j从0至4执行5次,j递增到5时跳出,num增加5
50 + 5 = 55

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题