在之前的文章《JS循環(huán)學(xué)習(xí):while循環(huán)語(yǔ)句的使用(示例詳解)》中,我們簡(jiǎn)單了解了 while 循環(huán)和 do while 循環(huán),而今天再來(lái)介紹一種循環(huán)——for 循環(huán)語(yǔ)句,希望對(duì)大家有所幫助!
一:for 循環(huán)
for循環(huán)會(huì)將控制循環(huán)次數(shù)的變量預(yù)先定義在for語(yǔ)句中,因此for循環(huán)語(yǔ)句能夠按照已知的循環(huán)次數(shù)進(jìn)行循環(huán)操作,適用于明確知道腳本需要運(yùn)行的次數(shù)的情況。
for 循環(huán)的語(yǔ)法格式如下:
for (初始化語(yǔ)句; 循環(huán)條件; 變量更新--自增或自減) { 語(yǔ)句塊; }
for循環(huán)語(yǔ)句可以拆解為4個(gè)部分:()
號(hào)中的三個(gè)表達(dá)式和{}
中的“語(yǔ)句塊”,下面我們來(lái)分析一下。
語(yǔ)句解析:
-
初始化語(yǔ)句(表達(dá)式1):主要是初始化一個(gè)變量值,用于設(shè)置一個(gè)計(jì)數(shù)器,即循環(huán)開始的值;該語(yǔ)句僅在第一次循環(huán)時(shí)執(zhí)行,以后都不會(huì)再執(zhí)行。
-
循環(huán)條件(表達(dá)式2):循環(huán)執(zhí)行的限制條件,用于控制是否執(zhí)行循環(huán)體中的代碼;如果條件為TRUE,則循環(huán)繼續(xù),如果條件為FALSE ,則循環(huán)結(jié)束,立即退出循環(huán)。
-
變量更新(表達(dá)式3):一個(gè)帶有自增或自減操作的表達(dá)式,循環(huán)每執(zhí)行一次,馬上修改計(jì)數(shù)器的值,以使循環(huán)條件逐漸變得“不成立”。
-
語(yǔ)句塊:條件判斷為真時(shí),需要執(zhí)行的若干代碼。
上面的描述是不是有點(diǎn)繞,我們來(lái)看看for循環(huán)語(yǔ)句的執(zhí)行流程圖,可以更直觀的了解for循環(huán)的執(zhí)行過(guò)程:
了解了for循環(huán)的執(zhí)行過(guò)程,接下來(lái)我們來(lái)實(shí)際操作,做一個(gè)小題,來(lái)看看有沒(méi)有掌握吧!
示例:計(jì)算從1加到100的和
<script type="text/javascript"> var sum=0; for(var i=1; i<=100; i++){ sum+=i; } console.log('1 + 2 + 3 +...+ 99 + 100 = '+sum); </script>
for 循環(huán)中的三個(gè)表達(dá)式
JS for 循環(huán)中括號(hào)中的三個(gè)表達(dá)式是可以省略的,但是用于分隔三個(gè)表達(dá)式的分號(hào)不能省略,如下例所示:
// 省略第一個(gè)表達(dá)式 var i = 0; for (; i < 5; i++) { // 要執(zhí)行的代碼 } // 省略第二個(gè)表達(dá)式 for (var y = 0; ; y++) { if(y > 5){ break; } // 要執(zhí)行的代碼 } // 省略第一個(gè)和第三個(gè)表達(dá)式 var j = 0; for (; j < 5;) { // 要執(zhí)行的代碼 j++; } // 省略所有表達(dá)式 var z = 0; for (;;) { if(z > 5){ break; } // 要執(zhí)行的代碼 z++; }
二:for 循環(huán)嵌套
無(wú)論是哪種循環(huán),都可以嵌套使用(即在一個(gè)循環(huán)中再定義一個(gè)或多個(gè)循環(huán))。
語(yǔ)法格式:
for (初始化語(yǔ)句1; 循環(huán)條件; 變量更新--自增或自減) { //語(yǔ)句塊1; for (初始化語(yǔ)句2; 循環(huán)條件; 變量更新--自增或自減) { //語(yǔ)句塊2; for (初始化語(yǔ)句3; 循環(huán)條件; 變量更新--自增或自減) { //語(yǔ)句塊3; ..... } } }
這里,我們定義了三個(gè) for 循環(huán)的嵌套,當(dāng)然,我們可以嵌套任意多個(gè)的 for 循環(huán)。
案例:for循環(huán)實(shí)現(xiàn)九九乘法口訣表
首先我們來(lái)觀察一下九九乘法口訣表
可以得出圖表的規(guī)律:
-
總共有9行9列,第幾行就有幾個(gè)表達(dá)式。
-
第 i 行,表達(dá)式就從 i*1 開始,一直到 i*i 結(jié)束,共有 i 個(gè)表達(dá)式(這個(gè)效果我們可以通過(guò)一次循環(huán)實(shí)現(xiàn))。
因此,需要使用雙重循環(huán)來(lái)控制輸出,外層循環(huán)控制行數(shù) i (i最小為1,最大為9),內(nèi)層循環(huán)控制列 j (j最小為1,最大等于 i)。
實(shí)現(xiàn)代碼:
for(var i = 1; i <= 9; i++){ //外層循環(huán)控制行 for(var j = 1; j <= i; j++) //內(nèi)層循環(huán)控制列 { document.write(j+"*"+i+"="+j*i+" "); } document.write("</br>"); }
輸出結(jié)果:
我們還可以向開頭圖那樣,將99乘法表放到一個(gè)表格里輸出:
document.write("<table>"); for (var i = 1; i <= 9; i++) { //外層循環(huán)控制行 document.write("<tr>"); for (var j = 1; j <= i; j++) //內(nèi)層循環(huán)控制列 { document.write("<td>" + j + "*" + i + "=" + j * i + "</td>"); } //換行,控制每行的輸出幾個(gè)表達(dá)式 document.write("</tr>"); } document.write("</table>");
然后添加css樣式,來(lái)修飾一下:
table { width: 600px; border-collapse: separate; } table td { border: #000 1px solid; text-align: center; }
看看輸出結(jié)果:
【推薦學(xué)習(xí):javascript高級(jí)教程】