循環就是重複做一件事,在編寫程式碼的過程中,我們常常會遇到一些需要重複執行的操作,例如遍歷一些資料、重複輸出某個字串等,如果一行行的寫那就太麻煩了,對於這種重複的操作,我們應該選擇使用循環來完成。
循環的目的就是為了重複執某段程式碼,使用循環可以減輕程式設計壓力,避免程式碼冗餘,提高開發效率,方便後期維護。 while 迴圈是JavaScript 中提供的最簡單的迴圈語句,下面我們來了解while迴圈和do-while迴圈的使用。
while迴圈語句是一種当型
迴圈語句,先對迴圈條件進行判斷,當條件滿足,則執行迴圈體,不滿足時則停止。
作用:重複執行某一項操作,直到指定的條件不成立。
特點:先判斷表達式,當表達式結果為真時執行對應的語句。
1、JS while 迴圈語法
while(表達式){ //表達式為迴圈條件// 要執行的程式碼}
語句解析:
先計算「表達式」的值,當值為真時, 執行迴圈體內的「PHP語句區塊」;
說明:「表達式」的計算結果是布林類型( TRUE 或FALSE)的,如果是其他類型的值也會自動轉換為布林類型的值(因為PHP是弱語言類型,會根據變數的值,自動把變數轉換為正確的資料型別)。
「語句塊」就是由
{ }
包圍的一個或多個語句的集合;如果語句區塊中只有一個語句,也可以省略{ }
。
執行結束後,回到表達式,再次計算表達式的值進行判斷,當表達式值為真,則繼續執行「語句區塊」…這個過程會重複
直到表達式的值為假時才跳出循環,執行while 下面的語句。
while語句的流程圖如下:
通常「表達式」是使用比較運算子或邏輯運算子計算後的值
範例程式碼如下:
<script> var i = 1; while( i <= 5) { document.write(i+", "); i++; } </script>
注意事項
在編寫循環語句時,一定要確保條件表達式的結果能夠為假(即布林值false),因為只要表達式的結果為true,循環就會持續下去,不會自動停止,對於這種無法自動停止的循環,我們通常稱之為“無限循環”或“死循環”。
如果不小心造成無限循環,可能會導致瀏覽器或電腦卡死。
如果表達式一直為真,循環條件一直成立,則while 迴圈會一直執行下去,永不結束,成為「死迴圈」
var i = 1; while(i){ console.log(i); }
執行程式後,會一直輸出變數i
的值,直到使用者強制關閉。
JS while 迴圈範例
【範例1】使用while 迴圈計算1~100 之間所有整數的和:
<script> var i = 1; var sum=0; while(i<=100){ sum+=i; i++; } console.log("1加到100的值為:"+sum); </script>
輸出結果:
【例2】找出1900 年到2020 年之間所有的閏年,每行6 個進行輸出:
<script> var i = 1900; var count = 0; //計數閏年的個數while (i <= 2020) { //判斷是否為閏年if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) { document.write(i + " "); count++; if (count % 6 == 0) { document.write("<br/>"); } } i++; } </script>
2、JS while 迴圈嵌套結構
while迴圈也可以實現嵌套的效果,即while 迴圈裡面嵌套一個或多個while 迴圈。
語法格式:
while(條件1){ // 條件1成立執行的程式碼while(條件2){ // 條件2成立執行的程式碼...... } }
總結:嵌套就是包含的意思,所謂while循環嵌套,就是一個while裡面嵌套一個while的寫法,每個while和之前的基礎語法是相同的。
這裡,我們定義了兩個while 迴圈的嵌套,當然,我們可以嵌套任意多個的while 迴圈。
理解while迴圈執行流程
當內部迴圈執行完成之後,再執行下一次外部迴圈的條件判斷。
範例1:使用循環嵌套,印出計數器
<script type="text/javascript"> var i = 0; while(i < 2){ console.log("i =", i); var j = 0; while(j < 2){ console.log("tj =", j); j += 1; } i++; } console.log("Over"); </script>
首先,我們定義了一個最外層的while 迴圈嵌套,計數器變數i 從0 開始,結束條件是i < 2,每次執行一次迴圈將i 的值加1,並列印目前i 的值。
在最外層循環的裡面,同時定義了一個內部循環,計數器變數j 從0 開始,結束條件是i < 2,每次執行一次循環將j 的值加1,並列印目前j 的值。
while迴圈嵌套總結
JavaScript 的while 迴圈也可以實現嵌套的效果,也就是while 迴圈裡面嵌套一個或多個while 迴圈。
範例2:
<script> /* 1. 循環列印3次媳婦,我錯了2. 刷碗3. 上面是一套懲罰,這套懲罰重複執行3天----一套懲罰要重複執行---放到一個while循環裡面*/ var j = 0 while(j < 3){ var i = 0 while(i < 3){ document.write('媳婦,我錯了<br>') i += 1; } document.write('刷碗<br>') document.write('一套懲罰就結束了!!!!!!!!!!!!<br>') j += 1; } </script>
除了while循環,還有一個do-while 循環。
do-while循環語句是一種「直到型
」循環語句,它是先在執行了一次循環體中的「語句塊」之後,然後再對循環條件進行判斷,如果為真則繼續循環,如果為假,則終止循環。
因此:不論表達式的結果,do-while迴圈語句至少會執行一次「語句塊」。
do-while迴圈語句的特性:先執行迴圈體,然後判斷迴圈條件是否成立。
1、JS do-while 迴圈語法
do{ 語句塊; }while(表達式);//表達式為迴圈條件
語句解析:
先執行一次循環體中的“語句區塊”,然後判斷“表達式”的值,當“表達式”的值為真時,返回重新執行循環體中的語句區塊…這個過程會一直重複
直到表達式的值為假時,跳出循環,此時循環結束,執行後面的語句。
說明:
和while迴圈一樣,do-while迴圈中「表達式」的計算結果一定是布林型的TRUE 或FALSE,如果是其他類型的值也會自動轉換為布林類型的值。
do-while語句最後的分號;
是無法省略的(一定要有),它是do while迴圈語法的一部份。
do-while循環語句的流程圖如下:
JS do-while 迴圈範例
【範例1】使用do-while 輸出1~5數字:
<script> var i = 1; do { document.write(i+", "); i++; }while( i <= 5); </script>
【範例2】使用while 迴圈計算1~100 之間所有整數的和:
<script> var i = 1; var sum=0; do{ sum+=i; i++; }while(i<=100); console.log("1 + 2 + 3 + ... + 98 + 99 + 100 = "+sum); </script>
【例3】找出1900 年到2020 年之間所有的閏年
<script> var i = 1900; var count = 0; //計數閏年的個數do { //判斷是否為閏年if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) { console.log(i); } i++; }while (i <= 2020); </script>
2、JS do-while 迴圈嵌套結構
do while迴圈也可以實現嵌套的效果,即do while 迴圈裡面嵌套一個或多個do while 迴圈。這種寫法就類似while 迴圈的嵌套。
語法:
do{ // 語句塊1; do{ // 語句塊2; do{ // 語句塊2; ..... }while(條件3); }while(條件2); }while(條件1);
這裡,我們定義了三個do while 迴圈的嵌套,當然,我們可以嵌套任意多個的do while 迴圈。
案例:使用循環嵌套,列印計數器
<script type="text/javascript"> var i = 0; do{ console.log("i =", i); var j = 0; do{ console.log("tj =", j); j += 1; }while(j < 2); i++; }while(i < 2); console.log("Over"); </script>
首先,我們定義了一個最外層的do while 迴圈嵌套,計數器變數i 從0 開始,結束條件是i < 2,每次執行一次迴圈將i 的值加1,並列印目前i 的值。
在最外層循環的裡面,同時定義了一個內部循環,計數器變數j 從0 開始,結束條件是i < 2,每次執行一次循環將j 的值加1,並列印目前j 的值。
do while迴圈嵌套總結
JavaScript 的do while 迴圈也可以實現巢狀的效果,也就是do while 迴圈裡面嵌套一個或多個do while 迴圈。
【推薦學習:javascript高級教學】
以上就是JS循環學習:while循環語句的使用(示例詳解)的詳細內容,更多請關注php中文網其它相關文章!