幾乎所有程式語言都有break和continue語句,可見它們的重要性,即使不重要相信也是夠實用的吧。但是在真正的開發過程中,又有多少人會忽視它們的用法呢?相信初學者或者不關心程式優化的人應該對其了解的比較膚淺。本文力圖通過例項加使用場合詳解來引導菜鳥重新認識break和continue語句。
1、break 語句用於終止最近的封閉迴圈或它所在的 switch 語句。控制傳遞給終止語句後面的語句(如果有的話)。
2、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少了一行。
varcompany
=new
array(
'adobe',
'','
google',
'intel',
'microsoft',
'oracle',
'ibm',
'sun');
for(
vari
incompany)
document.write(
'me was run '+
i);}
1、break可以優化程式,不讓程式多做些無用功。在下面的例子中,我們要從乙個龐大的公司列表中找出microsoft公司,一旦找到,就不會接著往下再找,比如下面語句用不用break是一樣的效果,但用了break語句,程式執行的步驟就少了,除非要找的公司在最後面。我這裡之所以強調「龐大」的列表,在於突顯break優勢,太少的話,也許你會認為自己用if語句就行。
varcompany
=new
array(
'adobe',
'','
google',
'intel',
'microsoft',
'oracle',
'ibm',
'sun');
//在陣列company中從左往右(或者說從前往後)尋找microsoft,找到後通過break語句跳出迴圈。
for(
vari
incompany)
}
通過指令碼除錯工具(比如firefox瀏覽器的firebug外掛程式)單步除錯可以發現,使用了break語句,迴圈了五次便退出了迴圈。而沒有使用break語句的話,迴圈要遍歷完整個陣列。
2、continue語句可以讓你直接在遍歷並查詢符合條件的元素過程中直接處理這些符合條件的元素,而不用先找到符合條件的元素集,然後再在外面另外寫方法重新遍歷這些新找到的元素並做處理。試著對比以下兩種實現方法,你應該明白continue的好處。
<1>不使用continue語句:
varcompany
=new
array(
'adobe',
'','
google',
'intel',
'microsoft',
'oracle',
'ibm',
'sun');
varfindcompany=;
for(
vari
incompany)
}for
(var
i in
findcompany)
<2>使用continue語句:
//演示continue語句用法,以下迴圈把非microsoft和ibm的公司成員找出來刪除掉。
varcompany
=new
array(
'adobe',
'','
google',
'intel',
'microsoft',
'oracle',
'ibm',
'sun');
for(
vari
incompany)
delete
company[i];
}
break語句與continue語句的區別
在很多情況下我們很容易將break語句與continue語句弄混淆,因為break語句與continue語句都有結束迴圈的意思,但是他們還有很多不同點。首先來談一談break語句,在執行迴圈的過程中,你可能希望只要發生特定的條件 例如,檢測到錯誤條件或過早地到達資料末尾時 就立即退出迴圈,而無論此迴...
break 和Continue 誤大事
寫了乙個演算法 根據tablename表中是否存在 裝置所屬型別和裝置id判斷是否存在該裝置 存在返回true public boolean i istequipment string equipmentid,string tablename boolean i ist false string s...
break和continue的區別
一 先看msdn關於break和continue語句的幫助說明 1 break 語句用於終止最近的封閉迴圈或它所在的 switch 語句。控制傳遞給終止語句後面的語句 如果有的話 2 continue 語句將控制權傳遞給它所在的封閉迭代語句的下一次迭代。二 對break和continue語句的解釋 ...