- JavaScript從入門到精通(第3版)
- 明日科技
- 1498字
- 2020-03-20 10:37:30
3.3 循環控制語句
所謂循環語句,就是在滿足條件的情況下可反復地執行某一個操作。循環控制語句主要包括while語句、do…while語句和for語句,下面分別進行講解。
3.3.1 while語句
while語句可以實現循環操作。while循環語句也稱為前測試循環語句,即利用一個先期條件來控制是否要重復執行循環體。while循環語句與for循環語句相比,無論是語法還是執行的流程,都較為簡明易懂。while循環語句的語法格式如下:
while(expression){ statement }
參數說明:
expression:一個包含比較運算符的條件表達式,用來指定循環條件。
statement:用來指定循環體。在循環條件的結果為true時,重復執行該循環體。
說明
while循環語句之所以稱為前測試循環,是因為它要先判斷循環條件是否成立,然后進行重復執行的操作。也就是說,while循環語句執行的過程是先判斷條件表達式,如果條件表達式的值為true,則執行循環體,并且在循環體執行完畢后,進入下一次循環,否則退出循環。
while循環語句的執行流程如圖3.8所示。
說明
在使用while語句時,也一定要保證循環可以正常結束,即必須保證條件表達式的值存在false的情況,否則將形成死循環。例如,下面的循環語句就會造成死循環,原因是i永遠都小于100。


圖3.8 while循環語句的執行流程
while循環語句經常用于循環執行的次數不確定的情況下。
【例3.4】 通過while循環語句頁面中列舉累加和不大于10的所有自然數。(實例位置:資源包\TM\sl\3\04)

運行結果如圖3.9所示。

圖3.9 while循環累加和不大于10的自然數
3.3.2 do…while語句
do…while循環語句也稱為后測試循環語句,它也是利用一個條件來控制是否要重復執行循環體。與while循環所不同的是,do…while先執行一次循環體,然后判斷條件,確定是否繼續執行。
do…while循環語句的語法格式如下:
do{ statement } while(expression);
參數說明:
statement:用來指定循環體。循環開始時,首先執行一次循環體,然后在循環條件的結果為true時,重復執行循環體。
expression:一個包含比較運算符的條件表達式,用來指定循環條件。
說明
do…while循環語句執行的過程是:先執行一次循環體,然后判斷條件表達式,如果條件表達式的值為true,則繼續執行循環體,否則退出循環。也就是說,do…while循環語句中的循環體至少要被執行一次。
do…while循環語句的執行流程如圖3.10所示。

圖3.10 do…while循環語句的執行流程
do…while循環語句同while循環語句類似,也常用于循環執行的次數不確定的情況下。
注意
do…while語句結尾處(即while語句括號后面)有一個分號“;”。為了養成良好的編程習慣,建議讀者在書寫的過程中不要將其遺漏。
3.3.3 for循環
for循環語句也稱為計次循環語句,一般用于循環次數已知的情況下,在JavaScript中應用比較廣泛。for循環語句的語法格式如下:
for(initialize;test;increment){ statement }
參數說明:
initialize:初始化語句,用來對循環變量進行初始化賦值。
test:循環條件,一個包含比較運算符的表達式,用來限定循環變量的邊限。如果循環變量超過了該邊限,則停止該循環語句的執行。
increment:用來指定循環變量的步幅。
statement:用來指定循環體,在循環條件的結果為true時,重復執行該循環體。
說明
for循環語句執行的過程是:先執行初始化語句,然后判斷循環條件,如果循環條件的結果為true,則執行一次循環體,否則直接退出循環,最后執行迭代語句,改變循環變量的值,至此完成一次循環。接下來將進行下一次循環,直到循環條件的結果為false,才結束循環。
for循環語句的執行流程如圖3.11所示。

圖3.11 for循環語句的執行流程
為使讀者更好地了解for語句的使用,下面通過一個具體的實例來介紹for語句的使用方法。
【例3.5】 計算100以內所有奇數的和。(實例位置:資源包\TM\sl\3\05)

運行程序,將會彈出提示框,顯示運算結果,如圖3.12所示。

圖3.12 計算100以內奇數和
說明
在使用for語句時,一定要保證循環可以正常結束,也就是必須保證循環條件的結果存在false的情況,否則循環體將無休止地執行下去,從而形成死循環。例如,下面的循環語句就會造成死循環,原因是i永遠大于等于1。
for(i=1;i>=1;i++){ alert(i); }
- JavaScript百煉成仙
- Java入門很輕松(微課超值版)
- Offer來了:Java面試核心知識點精講(原理篇)
- Kinect for Windows SDK Programming Guide
- Visual C++數字圖像處理技術詳解
- R語言與網絡輿情處理
- Python Interviews
- App Inventor 2 Essentials
- 零基礎學HTML+CSS第2版
- Mastering SciPy
- Getting Started with Electronic Projects
- micro:bit軟件指南
- Puppet Cookbook(Third Edition)
- C語言解惑:指針、數組、函數和多文件編程
- 一個APP的誕生:從零開始設計你的手機應用