break和continue語句對循環(huán)中的代碼執(zhí)行提供了更嚴格的控制。break語句可以立即退出循環(huán),阻止再次反復執(zhí)行任何代碼,而continue語句只是退出當前循環(huán),根據(jù)控制表達式還允許繼續(xù)進行下一次循環(huán)。例如:

在上面的代碼中,for循環(huán)將從1到10迭代變量i。在循環(huán)主體中,if語句將(使用取模運算符)檢查i的值是否能被5整除。如果能被5整除,將執(zhí)行break語句,警告顯示"4",即在退出循環(huán)前執(zhí)行循環(huán)的次數(shù)。如果用continue語句代替這個例子中的break語句,結果將不同:

這里,警告將顯示"8",即執(zhí)行循環(huán)的次數(shù)。可能執(zhí)行的循環(huán)總數(shù)為9,不過當i的值為5時,將執(zhí)行continue語句,會使循環(huán)跳過表達式iNum++,返回循環(huán)開頭。
break語句和continue語句都可以與有標簽的語句聯(lián)合使用,返回代碼中的特定位置。通常,當循環(huán)內(nèi)部還有循環(huán)時,會這樣做,如下面的例子所示:

在這個例子中,標簽outermost表示的是第一個for語句。正常情況下,每個for語句執(zhí)行10次代碼塊,意味著iNum++正常情況下將被執(zhí)行100次,在執(zhí)行完成時,iNum應該等于100。這里的break語句有一個參數(shù),即停止循環(huán)后要跳轉(zhuǎn)到的語句的標簽。這樣break語句不止能跳出內(nèi)部for語句(即使用變量j的語句),還能跳出外部for語句(即使用變量i的語句)。因此,iNum最后的值是55,因為當i和j的值都等于5時,循環(huán)將終止。可以以同樣的方式使用continue語句:


在這個例子中,continue語句會迫使循環(huán)繼續(xù),不止是內(nèi)部循環(huán),外部循環(huán)也如此。當j等于5時出現(xiàn)這種情況,意味著內(nèi)部循環(huán)將減少5次迭代,致使iNum的值為95。
可以看到,與break和continue聯(lián)合使用的有標簽語句的功能非常強大,不過過度使用它們會給調(diào)試代碼帶來麻煩。要確保使用的標簽具有說明性,不要嵌套太多層循環(huán)。
posted on 2008-01-18 19:51
Ke 閱讀(1689)
評論(0) 編輯 收藏 所屬分類:
javascript