首页 > 学院 > 开发设计 > 正文

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

2019-11-06 07:23:17
字体:
来源:转载
供稿:网友

一、先看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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表