[轉]break和continue在switch中,在循環中以及在循環中的switch的區別


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM