您的位置:首页 > 产品设计 > UI/UE

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

2012-09-25 20:33 465 查看
一、先看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

转自;/article/5461566.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: