核心提示:提起break大家肯定都知道,写循环经常会用到break。这里总结一下关于break的一些知识点。1、遍历大量数据记得用break跳出循环什么意思呢?简单一点,当我有一千个不同的乱序的数据数组,我需要...
提起break大家肯定都知道,写循环经常会用到break。这里总结一下关于break的一些知识点。
1、遍历大量数据记得用break跳出循环
什么意思呢?简单一点,当我有一千个不同的乱序的数据数组,我需要遍历一遍,但这个数据可能是第一个元素,也可能是最后一个元素。
对比一下下面两段代码:
code 1:
var result; for(var i = 0; i < 1000; i++) { //arr和value_need已经知道 if(arr[i] == value_need) { result = arr[i]; } }
code 2:
var result; for(var i = 0; i < 1000; i++) { //arr和value_need已经知道 if(arr[i] == value_need) { result = arr[i]; break; } }
两段代码功能一样,第二种更好。
2、break只跳出一层循环
这个可别弄错了。
var sum = 0; for(var i = 0; i < 10; i++) { for(var j = 0; j < 10; j++) { if(j == 5) break; sum++; } } console.log('sum: ' + sum); //sum: 50
看到没,i从0到9,每次j从0到4自增5次。总共50次。要是它能跳出多重循环,sum应该是5才对。
既然说了break,就顺带说一下continue好了。
code 1:
var sum = 0; for(var i = 0; i < 10; i++) { if(i == 5) continue; sum++; } console.log('sum: ' + sum); //sum: 9
code 2:
var sum = 0; for(var i = 0; i < 10; i++) { for(var j = 0; j < 10; j++) { if(i == 5 && j == 5) continue; sum++; } } console.log('sum: ' + sum); //sum: 99
看到没,也就是跳过这一次循环而已。
3、跳出多重循环
这里需要break和标签语句一起使用才能奏效。标签语句的语法是这样的:label : statement。
var sum = 0; outState: for(var i = 0; i < 10; i++) { for(var j = 0; j < 10; j++) { if(j == 5) break outState; sum++; } } console.log('sum: ' + sum); //sum: 5
看到没,直接在i为0的时候就执行了5遍就跳出整个双重循环了。
再来看一下continue的:
var sum = 0; outState: for(var i = 0; i < 10; i++) { for(var j = 0; j < 10; j++) { if(j == 5) continue outState; sum++; } } console.log('sum: ' + sum); //sum: 50
每次j到5就不做了,直接到外层i循环。i从0到9,每次5次,就是50。