JavaScript-流程控制 (Flow Control)
流程控制 (Flow Control)
一個程式未必一定要由上到下執行的,我們可以跟據一些條件來控制一個程式執行那一個部份,亦即是控制它的流程。
流程控制有以下幾種敘述:
.if
.if ... else
.for
.while
.break
.continue
if
語法:
| if (condition) { statements }
//如果只有一句敘述,就可以不用大括號包起來: if (condition) statement ; |
|
當
condition 是
true 時,就執行
statements ,否則,跳過 if 的範圍(即是大括號範圍或僅有一句敘述後之分號範圍)。
程式範例(if):
| <script> var num_student = 2; if (num_student > 1) { document.write("There are "); document.write(num_student); document.write(" students."); } if (num_student == 1) { document.write("There is one student."); } </script> |
|
if...else
語法:
| if (condition) { statements1 } else { statements2 }
//如果 if 和 else 都只有一句敘述,就可以不用大括號包起來: if (condition) statement1 ; else statement2 ; |
|
當 condition 是
true 時,就執行 statements1 ,然後跳過 else 範圍,否則,就執行 statements2。
程式範例(if ... else):
| <script> var num_student = 1; if (num_student == 0) { document.write("There are no student"); } else { document.write("There is at least one student."); } </script> |
|
for
語法:
| for (init_expr ; condition ; increment_expr) { statements } //執行 init_expr //如果 condition 是 true,就到第 3 步,否則跳出for 範圍 //執行 statements //執行 increment_expr,返回第 2 步 |
|
程式範例(for):
用 for 敘述顯示 1 至 10 的平方數
| <script> var i; var sqr; for (i=1; i<=10; i++) { sqr = i*i document.write("<br>" + i + " square = " + sqr) } </script> |
|
例子說明:
for 迴圈內的敘述重覆執行了 10 次,而每一次 i 的數值在執行完敘述之後都會加一。 直至 i 等於 11 ,因為 (11 <= 10) 是 false ,所以跳出 for 迴圈範圍。
while
語法:
| while (condition) { statements } //如果 condition 是 true,就到第 2 步, 否則,跳過 while 範圍 //執行 statements ,返回第 1 步 |
|
程式範例(while):
用 while 敘述顯示 1 至 10 的立方數
| <script> var i = 1; var sqr; while (i <= 10) { var sqr = i*i*i; document.write("<br>" + i + " cube = " + sqr) i++; } </script> |
|
break
語法:
程式範例(break):
用 break 跳出 while 迴圈
| <script> var i = 1; var sqr; while (i < 20) { var sqr = i*i*i; document.write("<br>" + i + " cube = " + sqr) i++; if (i > 10) { break; } } </script> |
|
continue
語法:
當 condition 是 true 時, statements1 就會被執行,否則,在大括號內的範圍會被跳過, 然後繼續執行下一句。
程式範例(continue):
用 continue 忽略某一次的 while 迴圈
| <script> var i = 0; var sqr; while (i<10) { i++; if (i == 5) { continue; } sqr = i*i*i document.write("<br>" + i + " cube = " + sqr) } </script> |
|
例子說明:
當 i 等於 5 並執行到 if 範圍那句 continue; 時,就會即時返回 while (i < 10) 這句,即是檢查 condition 是否 true。因此沒有執行 if 範圍下面的敘述。
(參考來源)
http://www.9w2u.com/htmlbook.asp?book=2
http://welkingunther.pixnet.net/blog/post/32084577
http://ant4js.blogspot.com/2009/01/windowmthv6.html