Javascript一問

2007-05-20 3:31 am
想問
var i=0
for (i=0;i<=10;i++)
{
if (i==3){break}
document.write("The number is " + i)
document.write(&quot;<br />&quot;)
}
是什麼意思?

for (i=0;i&lt;=10;i++)是什麼意思?

回答 (2)

2007-05-25 3:35 am
✔ 最佳答案
( for loop 和 break 的要點稍後詳述)
整段 script 的意思是:重覆動作 11 次 ( 由 i = 0 做到10,每完成一次動作後 i 加 1 )
執行的動作是
1. [Check] 如果 counter 是 3 的話,便跳出迴圈
2. 在網頁內列出 The number is #
3. 在網頁內加插斷行標籤 (tag) <br />

所以即使是原本指定 loop 11 次 (0至10共11次),但因為在 i = 3 時執行 break 的原故,會強行跳出迴圈,所以結果會是 (而不是 ... 去到 The number is 10)
The number is 0
The number is 1
The number is 2
為甚麼沒有 The number is 3 呢?因為 if (i==3){break} 於 document.write(...) 之前,所以未做document.write(...) 就已經終止了動作。


這裡有兩個要點
一、 for loop (for 迴圈) 的運動原理
二、 break 的功能


一、for loop (for 迴圈) 的運動原理
先說 for (i=0;i&lt;=10;i++)
意思是重覆動作 11 次。(由零至十)

細看 for ( ) 內有三個東西,分別用分號 ; 分隔著
1. i=0
counter 變數初始值。這裡是由 0 開此計
2. i&lt;=10
迴圈繼續執行的條件。當 counter &lt;=10 (即少於 11),迴圈便會繼續執行
3. i++
每完成一個迴圈後 counter 增/減多少。i++ 是 i=i+1 的意思,即每次加 1

for loop 的運作原理是
1. 設定counter 初始值 ( i )
2. 核對執行條件,如果條件乎合(或是對的)便執行 { } 內的動作,否則便停止。
3. 執行動作後增/減 counter 的數目
4. 重覆 2, 3 的步驟,直到 2 的條件不乎合為止
*** 要注意的是(3)執行動作後才會增/減 counter,而不是增/減 counter 後才執行動作


二、break 的功能
break 是強行終止迴圈的意思。這裡 if (i==3){break} 指當 counter 是 3 時便強行終止/跳出迴圈。
參考: 也是原創,給大家參考
2007-05-20 5:06 am
執行這段程式碼會得出以下結果:

The number is 0
The number is 1
The number is 2

因為當 i == 3 時,會執行 break 離開 for 迴圈:if (i == 3) { break }

for (i = 0; i &lt;= 10; i++) 是 Javascript 的一個 for 迴圈,可令跟在它後面的區塊(block)重複執行某個次數。“i = 0”是 for 迴圈的初始化 (initialization) 階段,“i”稱為「控制變數」 (control variable)。“i &lt;= 10”是迴圈的「結束條件」 (loop termination condition),當 i &lt;= 10 不成立時,迴圈會結束執行,如果開始條件已不成立,迴圈會被略過而不被執行。“i++”的作用是調整控制變數,迴圈在開始下一個迴路(loop)之前,要先做調整,i++ 會把 i 加 1,若是 i-- 就會把 i 減 1,直到迴圈的「結束條件」不成立為止。

2007-05-19 22:27:56 補充:
如果用HTML source來看,執行這段程式碼會得出以下結果:The number is 0&lt;br / &gt;The number is 1&lt;br / &gt;The number is 2&lt;br / &gt;下續...

2007-05-19 22:33:09 補充:
是由這兩句程式碼輸出的HTML碼:document.write( &quot; The number is &quot; + i)document.write( &quot; &lt;br / &gt; &quot; )document 是一個物件 (object),代表瀏覽器視窗中正在顯示的 HTML 文件,而 write 是 document 的一個方法 (method),會把它的引數 (argument) 寫到 document 中。

2007-05-22 10:26:34 補充:
雖然Javascript並不像C般強制每個single statement之後加“;”作結,但是有些地方仍是必須的,例如“var”statement之後。上面的程式碼要這樣寫才可避免syntax error:var i = 0; // ; is mandatory here!for (i = 0; i &lt;= 10; i++){ if (i == 3) {break} document.write( &quot; The number is &quot; + i) document.write( &quot; &lt;br /&gt; &quot; )}

2007-05-23 13:16:31 補充:
for 迴圈的引數(arguments)均可省略(optional),可按實際需要取捨,例如:var i = 0, n = new Array(3);for ( ; i &lt; 3; ) n[i++] = i; // n[0] = 1, n[1] = 2, n[2] = 3你甚至可以如下製造一個無窮迴圈(infinite loop):for ( ; ; );不過internet explorer會偵測類似情況並給使用者選擇把它略過。
參考: 個人經驗


收錄日期: 2021-04-23 19:48:54
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20070519000051KK04063

檢視 Wayback Machine 備份