break

单层循环

	// 单层循环
	for(var i = 1;i<6;i++){
		console.log(i);
		if(i > 3) break;
	}
	console.log(666)
	// 输出 1 2 3 4
	// 输出 666

嵌套循环

	// 不指定标识的嵌套循环
	for(var i = 1;i<4;i++) {
		for(var j = 1;j < 6;j++) {
			console.log(i * j)
			if(j > 2) break
		}
	}
	// 输出 1 2 3 2 4 6 3 6 9
	// break只会结束最里层的for循环,继续外面的for循环

指定标识的嵌套循环

	// 不指定标识的嵌套循环
	foo:for(var i = 1;i<4;i++) {
		for(var j = 1;j < 6;j++) {
			console.log(i * j)
			if(j > 2) break
			if( i > 2) break foo
		}
	}
	// 输出 1 2 3 2 4 6 3
	// break foo将会结束带有foo标识的for循环(或是代码块也可以),继续执行foo标识后面的代码块

在function中使用return

	(function(){
		for(var i = 1;i<4;i++) {
			for(var j = 1;j < 6;j++) {
				console.log(i * j)
				if(j > 2) return
			}
		}
		console.log(666)
	})()
	// 输出 1 2 3
	// 使用return不单单终止循环,还将不再执行后续的函数

带标签的循环 / 代码块十分少见,也不建议使用。不过在某些情况下它们也能派上用场,这时请务必将注释写清楚!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐