只要指定條件為真,循環(huán)就可以執(zhí)行代碼塊。
while只要指定條件的值為真,循環(huán)就會(huì)執(zhí)行指定語句。
while循環(huán)的語法如下:
while (condition) { // 只要條件為真,就執(zhí)行代碼}
var n = 0; while (n < 5) { document.write("<br>這個(gè)數(shù)字是 " + n); n++; }測(cè)試看看?/?
注意:如果要使用帶有條件的變量,請(qǐng)?jiān)谘h(huán)之前對(duì)其進(jìn)行初始化,然后在循環(huán)內(nèi)對(duì)其進(jìn)行遞增。如果忘記增加變量,循環(huán)將永遠(yuǎn)不會(huì)結(jié)束。這將使您的瀏覽器崩潰。
一個(gè)無限循環(huán),顧名思義,是一個(gè)循環(huán),將永遠(yuǎn)保持運(yùn)行。如果您不小心造成無限循環(huán),可能會(huì)導(dǎo)致瀏覽器或計(jì)算機(jī)崩潰。重要的是要意識(shí)到無限循環(huán),以便您可以避免它們。
當(dāng)while語句的條件設(shè)置為true時(shí),會(huì)發(fā)生一個(gè)常見的無限循環(huán)。
while (true) { // 永遠(yuǎn)執(zhí)行代碼 }
無限循環(huán)將永遠(yuǎn)運(yùn)行,但是可以使用break關(guān)鍵字終止程序。
該do...while循環(huán)是while循環(huán)的變體。在檢查條件是否為真之前,此循環(huán)將執(zhí)行一次代碼塊,然后只要條件為真,它將重復(fù)該循環(huán)。
該do...while循環(huán)的語法如下:
do { // 要執(zhí)行的語句 } while (condition);
do { document.write("<br>數(shù)字是 " + n); n++; } while (n < 5);測(cè)試看看?/?
不要忘記增加條件中使用的變量,否則循環(huán)將永遠(yuǎn)不會(huì)結(jié)束。
注意:即使條件為false,這個(gè)循環(huán)也總是至少執(zhí)行一次,因?yàn)榇a塊是在條件測(cè)試之前執(zhí)行的:
var n = 5; do { document.write("<br>數(shù)字是 " + n); n++; } while (n < 3); // false測(cè)試看看?/?
while循環(huán)不同于do…while循環(huán)以一種重要的方式使用while循環(huán),在每次循環(huán)迭代開始時(shí)測(cè)試要計(jì)算的條件,因此如果條件表達(dá)式的計(jì)算結(jié)果為false,則將永遠(yuǎn)不會(huì)執(zhí)行循環(huán)。
另一方面,使用do ... while循環(huán),即使條件表達(dá)式的計(jì)算結(jié)果為false,該循環(huán)也將始終執(zhí)行一次,因?yàn)榕cwhile循環(huán)不同,條件是在循環(huán)迭代的末尾而不是在開始時(shí)計(jì)算的。
如果您已經(jīng)閱讀了上一章關(guān)于for循環(huán)的內(nèi)容,您將發(fā)現(xiàn)while循環(huán)與for循環(huán)非常相似,只是省略了初始化和最終表達(dá)式。
此示例中的for循環(huán)使用循環(huán)從fruits數(shù)組中獲取水果名稱:
var fruits = ['Apple', 'Mango', 'Banana', 'Orange']; var txt = ''; for (var i = 0; i < fruits.length; i++) { txt += fruits[i] + '<br>'; }測(cè)試看看?/?
此示例中的while循環(huán)使用循環(huán)從fruits數(shù)組中獲取水果名稱:
var fruits = ['Apple', 'Mango', 'Banana', 'Orange']; var txt = ''; var i = 0; while (i < fruits.length) { txt += fruits[i] + '<br>'; i++; }測(cè)試看看?/?