書名: JavaScript從入門到精通(微視頻精編版)作者名: 明日科技本章字數: 802字更新時間: 2020-09-01 15:02:23
3.3 跳轉語句

視頻講解
假設在一個書架中尋找一本《新華字典》,如果在第二排第三個位置找到了這本書,那么就不需要去看第三排、第四排的書了。同樣,在編寫一個循環語句時,當循環還未結束就已經處理完了所有的任務,就沒有必要讓循環繼續執行下去,繼續執行下去既浪費時間又浪費內存資源。在JavaScript中提供了兩種用來控制循環的跳轉語句:continue語句和break語句。
3.3.1 continue語句
continue語句用于跳過本次循環,并開始下一次循環。其語法格式如下:
continue;
注意
continue語句只能應用在while、for、do…while語句中。
例如,在for語句中通過continue語句輸出10以內不包括5的自然數的代碼如下:
01 for(i=1;i<=10;i++){ 02 if(i==5) continue; //如果i等于5就跳過本次循環 03 document.write(i+"\n"); //輸出變量i的值 04 }
運行結果為:
1 2 3 4 6 7 8 9 10
說明
當使用continue語句跳過本次循環后,如果循環條件的結果為false,則退出循環,否則繼續下一次循環。
【例3.10】萬達影城7號影廳的觀眾席有4排,每排有10個座位。其中,1排6座和3排9座已經出售,在頁面中輸出該影廳當前的座位圖。關鍵代碼如下:(實例位置:資源包\源碼\03\3.10)
01 <script type="text/javascript"> 02 document.write("<table align='center'>"); //輸出表格標簽 03 for(var i = 1; i <= 4; i++){ //定義外層for循環語句 04 document.write("<tr height=70>"); //輸出表格行標簽 05 for(var j = 1; j <= 10; j++){ //定義內層for循環語句 06 if(i == 1 && j == 6){ //如果當前是1排6座 07 //將座位標記為“已售” 08 document.write("<td align='center' width=80 background=yes.png>已售</td>"); 09 continue; //應用continue語句跳過本次循環 10 } 11 if(i == 3 && j == 9){ //如果當前是3排9座 12 //將座位標記為“已售” 13 document.write("<td align='center' width=80 background=yes.png>已售</td>"); 14 continue; //應用continue語句跳過本次循環 15 } 16 //輸出排號和座位號 17 document.write("<td align='center' width=80 background=no.png>"+i+"排"+j+"座"+"</td>"); 18 } 19 document.write("</tr>"); //輸出表格行結束標簽 20 } 21 document.write("</table>"); //輸出表格結束標簽 22 </script>
運行本實例,結果如圖3.18所示。

圖3.18 輸出影廳當前座位圖
3.3.2 break語句
在3.1.2節的switch語句中已經用到了break語句,當程序執行到break語句時就會跳出switch語句。除了switch語句之外,在循環語句中也經常會用到break語句。
在循環語句中,break語句用于跳出循環。break語句的語法格式如下:
break;
說明
break語句通常用在for、while、do…while或switch語句中。
例如,在for語句中通過break語句跳出循環的代碼如下:
01 for(i=1;i<=10;i++){ 02 if(i==5) break; //如果i等于5就跳出整個循環 03 document.write(i+"\n"); //輸出變量i的值 04 }
運行結果為:
1 2 3 4
注意
在嵌套的循環語句中,break語句只能跳出當前這一層的循環語句,而不是跳出所有的循環語句。
例如,應用break語句跳出當前循環的代碼如下:
01 var i,j; //聲明變量 02 for(i=1;i<=3;i++){ //定義外層循環語句 03 document.write(i+"\n"); //輸出變量i的值 04 for(j=1;j<=3;j++){ //定義內層循環語句 05 if(j==2) //如果變量j的值等于2 06 break; //跳出內層循環 07 document.write(j); //輸出變量j的值 08 } 09 document.write("<br>"); //輸出換行標記 10 }
運行結果為:
1 1 2 1 3 1
由運行結果可以看出,外層for循環語句一共執行了3次(輸出1、2、3),而內層循環語句在每次外層循環里只執行了一次(只輸出1)。