break和continue的区别【转】

本文详细解析了JavaScript中的break和continue语句用法,包括无标号和带标号的情况,并通过具体实例展示了如何使用这些语句来控制循环流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

break语句用于终止循环语句块里面的执行语句或者是switch语句,

一个没有标号(标识)的break语句,他会把控制传递给当前循环,比如while,for,

do while,还有switch结构语句中break下面的下一条语句

如果有标号(标识),那么他就会把控制传递给当前方法中(while.for.do whole.switch)

带有这一标号(标识)的循环语句后面的执行语句。也就是说:

biaohaoming:while ( true )

{

while ( true )

{

break biaohaoming;

}

}

在上面的代码中,在while循环后面有嵌套了一个while循环,当里层的while循环满足

某一条件时,程序就会跳出这整个的外边的循环,为了实现这个思想,我们就定义了

一个标号,标号的名称是我们自己命名的任意的,标号后面的语句将被终止,

在这里我们把这个标号放在第一句while(x<10)前面,也就是说当程序执行里层的while

循环的时候,当程序满足了某一条件,这个时候我们就希望推出整个外层的while循环

我们就可以把标号放在外层的while前面,这样程序就会跳过这整个的外层的循环(也

包括里层的while循环)

我们先来看一看没有标号(标识)的break的例子:

<script language = "javascript">

var x = 1;

while ( x < 10 )

{

if ( x > 5 )

break;

alert ( x );

x++;

}

</script>

这段代码运行的结果是将会弹出5个对话框,分别显示1.2.3.4.5

我们声明了一个变量x,我们让x初始值等于1,然后是一个while循环

当x小于10的时候,我们就显示出x:alert(x);

在大括号里面还有一个前提,那就是当x大于5的时候,我们就跳出整个while循环

if(x>5) break;我们知道,程序都是按顺序执行的,所以每一次程序会先判断x是不是大于

5:if(x>5) break;。然后再运行alert(x);x++

当x等于6的时候,if(x>5)就是不成立的,所有程序就会运行if下面的break,跳出这整个

while循环,

由此我们可以知道:一个没有标号(标识)的break语句,他会把控制传递给当前的

整个循环,也就是当前的这个while循环

这个例子不怎么明显

我们来看下面这个例子:

<script language = "javascript">
var x = 1;
while(x<10)
{
while(x==5)
{
x++;
break;

alert(x);
}
alert(x);
x++;

}
</script>

这段代码运行的结果是将会弹出8对话框,分别显示:1.2.3.4.6.7.8.9

两个while循环嵌套在一起,当x等于5的时候,程序会执行上面那个红色的大括号里面

的句子,x++,然后跳出那个红色的while循环,这个时候x就等于5++等于6

再看这个:

<script language = "javascript">
var x = 1;
biaoshiming:while(x<10)
{
while(x==5)
{
x++;
break biaoshiming;

alert(x);
}
alert(x);
x++;

}
</script>

我们看到这里有标号:biaoshiming,在while(x<10)的前面

也就是说当满足一定条件的时候,这整个外层的while循环将会被强制结束

在这里当x等于5的时候,程序先运行红色的x++,然后程序就会遇到break和标号名

然后程序就会去寻找这个标号的位置,找到以后就结束这个标号名的冒号所指向的句子

(红色部分的alert(x);不会被执行了,因为他前面有个break)

所以程序就会跳出这整个的外层的while循环,也包括里层的while循环,

所以这段代码运行的结果就是弹出4个对话框,分别显示:1.2.3.4

continue语句:出现在for.while,do while,if,等结构的循环

提语句块当中无标号的continue语句的作用是跳过当前这一

次循环的剩余语句,然后接着再进行下一次新的循环

例如:我们让程序显示出从0到10的所有的奇数

<script language = "javascript">
var st = "";

for(var x = 0;x<10;x++)
{

if(x%2 == 0)
continue;
st = st+x;

}

alert(st);
</script>

我们来分析一下这段代码:

<script language = "javascript">
var st = "" ; //我们定义了一个变量,变量名是st,值是空的字符串

for(var x = 0;x<10;x++) //for循环
{

if(x%2 == 0) //如果x除以2的值等于0(注意:这里是

//判断,判断x除以2是不是等于0,所以

//要用:==,而不是:= ,因为 = 是赋

//值不是判断)
continue; //如果x除以2的值等于0,那么程序就

//不再执行这一次循环的剩余语句,就是

//下面的:st = st+x;x++,程序会从新
st = st+x;

}

alert(st);
</script>

因为我们需要的是显示出从0到10的奇数,当x除以2的值是偶数的时候,

程序就会碰到continue,然后程序就会不去执行下面的st = st+x;x++

而是重新回到for(var x = 0;x<10;x++),还是和以前的for循环一样,再一次循环

是先运行x++,再运行x《10,然后再进入大括号,继续运行

只有当x除以2不等于0的时候,才为奇数,因为我们要的是奇数

所以x除以2等于0是偶数的时候就不管,什么也不作

x除以2不等于0的时候,这个时候x是奇数,就执行str = str+x,然后再回过头

来继续执行for循环。

这个程序执行的结果就是将会弹出一个对话框,显示:13579
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值