中断循环

122 阅读1分钟

image.png 1.直接 break;只跳出一层循环(continue 跳出当次循环) 这种情况等同于省略label,如果省略label则中断当前循环或者switch,如果有label,则终止指定的label语句

for (let i = 0; i < 6; i++) {
	for(let j = 0; j < 6; j++) {
        if(i === 1 && j === 3) {
            break
        }
        console.log(i, j);
    }
}

运行结果: image.png

2.label语法,可以跳出被标记的地方 (1)break image.png (2)continue image.png

return语句

return语句用于指定函数返回的值且return语句只能出现在函数体内。

function loop() { 
    let i = 0 
    while(i < 5) { 
        if(i > 2) return 
        console.log(i) 
        i++ 
    } 
    console.log('end') 
} 
loop() 
// 输出 
//0 
// 1 
// 2

forEach语句

forEach()方法对数组的每个元素执行一次提供的函数。forEach是数组原型上的一个遍历方法,这里拿出来讲主要是因为这也是一个非常常见的循环方法,而且经常会跟上面的循环搞混。

主要区别在于:没有办法中止或者跳出 forEach() 循环,除了抛出一个异常。如果你需要跳出循环请考虑使用for ... of语句,或其他数组方法,比如:Array.prototype.every()Array.prototype.some()等。

function test() {
	var a = [1, 2, 3, 4, 5]
	a.forEach(v => {
		if(v===2) return
		console.log(v)
	})
	console.log('end')
}
test()