美文网首页
switch没有break陷阱

switch没有break陷阱

作者: Vivian_06e6 | 来源:发表于2018-10-19 17:41 被阅读0次
    var values = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]
    var interations = Math.ceil(values.length/8);
    var startAt = values.length%8;
    var i=0;
    //在有break的情况下
    //startAt=0;i=1; alert 1;iterations=2;
    //startAt=0;i=2;alert 2;iterations=1;
    //startAt=0;i=3;alert 3;iterations=0;
    
    function process(v){
      console.log(v)
    }
    
    do{
      switch(startAt){
        case 0 :process(values[i++]);
        case 7 :process(values[i++]);
        case 6 :process(values[i++]);
        case 5 :process(values[i++]);
        case 4 :process(values[i++]);
        case 3 :process(values[i++]);
        case 2 :process(values[i++]);
        case 1 :process(values[i++]);
      }
      startAt=0;
      console.log("interations"+interations)
      console.log("startAt"+startAt)
      console.log("i"+i)
    }while(--interations>0)
    //没有有break的情况下
    /*
    打印:1
    打印:interations3
    打印: startAt0
    打印: i1
    打印: 2
    打印: 3
    打印: 4
    打印: 5
    打印: 6
    打印: 7
    打印: 8
    打印: 9
    打印: interations2
    打印: startAt0
    打印: i9
    打印: 10
    打印: 11
    打印: 12
    打印: 13
    打印: 14
    打印: 15
    打印: 16
    打印: 17
    打印: interations1
    打印: startAt0
    打印: i17
    第一遍执行一次 第二遍和第三遍分别执行 8次process函数
    */
    
    

    相关文章

      网友评论

          本文标题:switch没有break陷阱

          本文链接:https://www.haomeiwen.com/subject/jwruzftx.html