zoukankan      html  css  js  c++  java
  • JavaScript中label语句的使用

    最近看Javascript高级程序设计,看到一个有趣的问题,label的使用,以此做个笔记。

      1. 看一个break和continue的例子

          break终止循环;

          continue跳出本次循环,继续下次循环。

        for(var i = 0; i < 10; i++){
            if(i%5==0){
                break;
            }
            num++;
        }
    
        console.log(num) // 4
        for(var i = 0; i < 10; i++){
            if(i%5==0){
                continue;
            }
            num++;
        }
    
        console.log(num) // 8

      2. break和continue语句都可以与label联合使用,从而达到代码中特定的位置,这种联合使用的情况多发生在循环嵌套的情况下;

      break label;

        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;
                }else{
                    console.log(i,j,88);
                }
                num++;
            }
        }
        console.log(num); //55

      内部循环中break语句带了一个参数,要返回到的标签。添加这个标签的结果将导致break语句不仅会退出内部for循环,而且也会退出外部的for循环,为此当变量i和j都等于5时,num的值正好是55.

      continue label;

        var num = 0;
        outermost:
        for (var i = 0; i < 10; i++) {
            for (var j = 0; j < 10; j++) {
                if (i == 5 && j == 5) {
                    continue outermost;
                }else{
                    console.log(i,j,88);
                }
                num++;
            }
        }
        console.log(num); //95

      在这种情况下,continue语句会强制继续执行循环(退出内部循环,执行外部循环)。当变量i和j都等于5时,num的值正好是95.

      三个for循环

       var itemsId = [1,3];
        var all = [[{id:1,name:hehe},{id:3,name:hehe}],[{id:2,name:hehe},{id:4,name:hehe}]];
        for(var i=0;i<itemsId.length;i++){
            outPoint:
            for(var j=0;j<all.length;j++){
                for(var k=0;k<all[j].length;k++){
                    if( all[j][k].id == itemsId[i] ){
                        console.log(all[j][k]);
                        break outPoint;
                    }
                }
            }
        }
      这样,在all[j][k].id == itemsId[i]的时候,就会跳出到outPoint的位置,直接跳出两个循环,从下一个id开始查找。少循环了许多次。
  • 相关阅读:
    欧拉公式
    isap的一些想法
    错误合集
    Hello World
    PAT (Advanced Level) Practice 1068 Find More Coins
    PAT (Advanced Level) 1087 All Roads Lead to Rome
    PAT (Advanced Level) 1075 PAT Judge
    PAT (Advanced Level) 1067 Sort with Swap(0, i)
    PAT (Advanced Level) 1017 Queueing at Bank
    PAT (Advanced Level) 1025 PAT Ranking
  • 原文地址:https://www.cnblogs.com/yyy6/p/8885128.html
Copyright © 2011-2022 走看看