break和continue语句

break和continue语句用于在循环中精确地控制代码的执行。其中,break语句会立即退出循环,强制继续执行循环后面的语句。而continue语句虽然也是立即退出循环,但退出循环后会从循环的顶部继续执行。请看下面的例子:

var num = 0;

for (var i=1; i < 10; i++){
	if(i % 5 == 0){
		break;
	}
	num++;
}

alert(num);    //4

for循环会将变量i由1递增至10。在循环体内,有一个if语句检查i的值是否可以被5整除,如果是,则执行break语句退出循环。另一方面,变量num从0开始,用于记录循环执行的次数。在执行break语句之后,要执行的下一行代码是alert()函数,结果显示4.也就是说,在变量i等于5时,num++总共执行了4次;而break语句的执行,导致了循环在num再次递增之前就退出了。如果在这里把break替换为continue。则可以看到另一种结果:

var num = 0;

for(var i=1; i < 10; i++){
	if(i % 5 == 0){
		continue;
	}
	num++;
}

alert(num);    //8

例子的结果显示8,也就是num++总共执行了8次。当变量i等于5时,循环会在num再次递增之前退出,但接下来执行的是下一次循环,即i的值等于6的循环。于是循环又继续执行,直到i等于10时自然结束。而num的最终值之所以是8,是因为continue语句导致它少递增了一次。

break和continue语句都可以与label语句联合使用,从而返回代码中特定的位置。这种联合使用的情况多发生在循环嵌套的情况下,如下面的例子:

var num = 0;

outermost:
for (var i=0; i < 10;i++) {
	for(var j=0; j < 10;j++) {
		if(i == 5 && j == 5) {
			break outermost;
		}
		num++;
	}
}

alert(num);      //55

在这个例子中,outermost标签表示外部的for语句。如果每个循环正常执行10次,则num++语句就会正常执行100次。也就是,如果两个循环都自然结束,num的值应该是100.但内部循环中的break语句带了一个参数:要返回到的标签。添加这个标签的结果将导致break语句不仅会退出内部的for语句,而且也会退出外部的for语句。为此,当变量i和j都等于5时,num的值正好是55.同样,continue语句也可以像这样与label语句联用。如下面的例子:

var num = 0;

outermost:
for (var i=0; i < 10; i++) {
	for (var j=0; j < 10; j++) {
		if(i == 5 && j == 5){
			continue outermost;
		}
		num++;
	}
}

alert(num);    //95

这种情况下,continue语句会强制继续执行循环——退出内部循环,执行外部循环。当j是5时,continue语句执行,而这也就意味着内部循环少执行了5次所以num的结果是95

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值