五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > break和continue區(qū)別及使用場合

break和continue區(qū)別及使用場合

文章來源:365jz.com     點擊數(shù):2030    更新時間:2009-09-17 10:16   參與評論

幾乎所有程序語言都有break和continue語句,可見它們的重要性,即使不重要相信也是夠?qū)嵱玫陌?。但是在真正的開發(fā)過程中,又有多少人會忽視它們的用法呢?相信初學(xué)者或者不關(guān)心程序優(yōu)化的人應(yīng)該對其了解的比較膚淺。本文力圖通過實例加使用場合詳解來引導(dǎo)菜鳥重新認(rèn)識break和continue語句。

注意:為了方便演示,本文例子選擇我喜愛的JavaScript語言,其它語言,比如C#、Java、Python等是一樣的用法。

一、先看MSDN關(guān)于break和continue語句的幫助說明

1、break 語句用于終止最近的封閉循環(huán)或它所在的 switch 語句。控制傳遞給終止語句后面的語句(如果有的話)。

2、continue 語句將控制權(quán)傳遞給它所在的封閉迭代語句的下一次迭代。

二、我對break和continue語句的解釋

通過對MSDN幫助的理解,我們可以得出以下結(jié)論:

1、break 語句在循環(huán)(for、for in,……)和switch等具有迭代選擇特征的語句中使用,而且是終止最近的封閉代碼塊(即多重循環(huán)時,它只終止自己所在的循環(huán)),整體代碼接在break語句后繼續(xù)執(zhí)行(如果break語句不是最后一行代碼的話)。

2、continue語句與break語句使用場合類似,continue語句是不可以在單獨的switch語句中使用,但可以在一個循環(huán)內(nèi)的switch語句中使用。含有continue的迭代語句(或者叫循環(huán)語句),在遇到continue語句后,代碼先不按照常規(guī)的從上往下的代碼執(zhí)行順序執(zhí)行,而是馬上回到循環(huán)入口轉(zhuǎn)入下一次循環(huán)。

3、break和continue語句在循環(huán)內(nèi)的switch語句中使用時,是有些區(qū)別的。break是跳出本switch,switch后面的代碼繼續(xù)執(zhí)行,而continue是不執(zhí)行switch后的代碼,可以理解為跳出循環(huán),接著進(jìn)入下一次循環(huán)。分別測試下面代碼使用break和continue兩種情況的輸出,如果使用continue,你會發(fā)現(xiàn)程序找到Microsoft后,document.write代碼不執(zhí)行了,輸出結(jié)果就比使用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可以優(yōu)化程序,不讓程序多做些無用功。在下面的例子中,我們要從一個龐大的公司列表中找出Microsoft公司,一旦找到,就不會接著往下再找,比如下面語句用不用break是一樣的效果,但用了break語句,程序運行的步驟就少了,除非要找的公司在最后面。我這里之所以強調(diào)“龐大”的列表,在于突顯break優(yōu)勢,太少的話,也許你會認(rèn)為自己用if語句就行。

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

//在數(shù)組company中從左往右(或者說從前往后)尋找Microsoft,找到后通過break語句跳出循環(huán)。
for (var i in company)
{
    
if (company[i]=='Microsoft')
    {
        document.write(
'Find Microsoft');
        
break;
    }
}

通過腳本調(diào)試工具(比如Firefox瀏覽器的Firebug插件)單步調(diào)試可以發(fā)現(xiàn),使用了break語句,循環(huán)了五次便退出了循環(huán)。而沒有使用break語句的話,循環(huán)要遍歷完整個數(shù)組。

2、continue語句可以讓你直接在遍歷并查找符合條件的元素過程中直接處理這些符合條件的元素,而不用先找到符合條件的元素集,然后再在外面另外寫方法重新遍歷這些新找到的元素并做處理。試著對比以下兩種實現(xiàn)方法,你應(yīng)該明白continue的好處。

<1>不使用continue語句:

var company=new Array('Adobe','Apple','Google','Intel','Microsoft','Oracle','IBM','SUN');
var findCompany=[];
for (var i in company)
{
    
if (company[i]=='Microsoft'||company[i]=='IBM')
    {
        findCompany.push(company[i]);
    }
}
for (var i in findCompany)
{
    
delete findCompany[i];
}

<2>使用continue語句:

//演示continue語句用法,以下循環(huán)把非Microsoft和IBM的公司成員找出來刪除掉。
var company=new Array('Adobe','Apple','Google','Intel','Microsoft','Oracle','IBM','SUN');
for (var i in company)
{
    
if (company[i]=='Microsoft'||company[i]=='IBM')
    {
        
continue;
    }
    
delete company[i];
}
作者:WebFlash
出處:http://webflash.cnblogs.com
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。

如對本文有疑問,請?zhí)峤坏浇涣髡搲瑥V大熱心網(wǎng)友會為你解答??! 點擊進(jìn)入論壇

發(fā)表評論 (2030人查看,0條評論)
請自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號