break和continue在switch中,在循环中以及在循环中的switch的区别

一、先看MSDN关于break和continue语句的帮助说明
1、break 语句用于终止最近的封闭循环或它所在的 switch 语句。控制传递给终止语句后面的语句(如果有的话)。

2、continue 语句将控制权传递给它所在的封闭迭代语句的下一次迭代。

二、我对break和continue语句的解释
通过对MSDN帮助的理解,我们可以得出以下结论:

1、break 语句在循环(for、for in,……)和switch等具有迭代选择特征的语句中使用,而且是终止最近的封闭代码块(即多重循环时,它只终止自己所在的循环),整体代码接在break语句后继续执行(如果break语句不是最后一行代码的话)。

2、continue语句与break语句使用场合类似,continue语句是不可以在单独的switch语句中使用,但可以在一个循环内的switch语句中使用。含有continue的迭代语句(或者叫循环语句),在遇到continue语句后,代码先不按照常规的从上往下的代码执行顺序执行,而是马上回到循环入口转入下一次循环。

3、break和continue语句在循环内的switch语句中使用时,是有些区别的。break是跳出本switch,switch后面的代码继续执行,而continue是不执行switch后的代码,可以理解为跳出循环,接着进入下一次循环。分别测试下面代码使用break和continue两种情况的输出,如果使用continue,你会发现程序找到Microsoft后,document.write代码不执行了,输出结果就比使用break少了一行。

var company=new Array('Adobe','Apple','Google','Intel','Microsoft','Oracle','IBM','SUN');
for (var i in company)
{
    switch (company[i])
    {
    case 'Microsoft':
        continue;
        //break;
    }
    document.write('Me was run '+i);
}
三、break和continue语句的使用场合
1、break可以优化程序,不让程序多做些无用功。在下面的例子中,我们要从一个庞大的公司列表中找出Microsoft公司,一旦找到,就不会接着往下再找,比如下面语句用不用break是一样的效果,但用了break语句,程序运行的步骤就少了,除非要找的公司在最后面。我这里之所以强调“庞大”的列表,在于突显break优势,太少的话,也许你会认为自己用if语句就行。

var company=new Array('Adobe','Apple','Google','Intel','Microsoft','Oracle','IBM','SUN');

//在数组company中从左往右(或者说从前往后)寻找Microsoft,找到后通过break语句跳出循环。
for (var i in company)
{
    if (company[i]=='Microsoft')
    {
        document.write('Find Microsoft');
        break;
    }
}
举例在switch的区别

#include<iostream.h>
char input[]="SSSWILTECH1\1\11W\1WALLMP1";
void main()
{ char c;
for (int i=2;(c=input[i])!='\0';i++)
{
 switch(c)
 {
 case 'a':cout<<'i';continue;
 case '1':break;
 case 1:while((c=input[++i])!='\1'&&c!='\0');
 case 'E':
 case 'L':continue;
 default:cout<<c;
  continue;
 }
 cout<<' ';
}

cout<<endl;


}

 

一个例子:

#include <stdio.h>
void   main()
{
int   flag=0;
for(int   j=0;   j <2;   j++)
{
if(j==0)
{
switch(j)
{
case   0:   continue;       
}
flag=1;        //continue的时候这句不执行,直接下一次循环;而break的时候,这一句则要执行;
}
}
printf( "   flag:%d\n ",flag);
}

输出:
  flag:0

如果代码为:
  case   0:   break;
输出:
  flag:1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值