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函数
*/
网友评论