2011-08-26 16:02:19

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):

用 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
語法:


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