流程控制 (Flow Control)
一個程式未必一定要由上到下執行的,我們可以跟據一些條件來控制一個程式執行那一個部份,亦即是控制它的流程。
流程控制有以下幾種敘述:
.if
.if ... else
.for
.while
.break
.continue
if
語法:
|
if (condition)
{
statements
}
//如果只有一句敘述,就可以不用大括號包起來:
if (condition) statement
; |
|
當 condition 是 true
時,就執行 statements ,否則,跳過 if 的範圍(即是大括號範圍或僅有一句敘述後之分號範圍)。
程式範例(if): 看程式samp19.html執行結果
|
<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): 看程式samp20.html執行結果
|
<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): 看程式samp21.html執行結果
用 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): 看程式samp22.html執行結果
用 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): 看程式samp23.html執行結果
用 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): 看程式samp24.html執行結果
用 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 範圍下面的敘述。 |