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