標題:
[教學]
(ASP教學第8篇) 重複執行的迴圈敘述
[打印本頁]
作者:
小誌
時間:
2010-5-10 18:17
標題:
(ASP教學第8篇) 重複執行的迴圈敘述
重複執行的迴圈敘述
所謂迴圈(Loop)就是能讓某一段的程式能夠重複執行許多次的流程控制敘述,在本章節中,將介紹兩個比較常用來控制程式的迴圈敘述,它們是:For-Next及While-Wend。
計次執行的For-Next敘述
當我們知道迴圈必須執行的次數時,For-Next敘述就是最好的迴圈敘述,要使用For-Next敘述就必須使用一個控制變數來決定For-Next敘述要執行的次數,其格式如下:
For-Next迴圈敘述區塊格式
For 計次變數:=初值 To 終值
要重複執行的敘述區塊
Next
複製代碼
由上列格式中可得知,For-Next敘述可以幫我們建立一個迴圈,我們只要決定上下限就可以決定迴圈重複的次數,例如:
For X=1 To 10
Y=Y+X
Next
複製代碼
在上例中,最重要的一個地方就是變數X,它在迴圈中是扮演一個計數器的角色,而計數範圍從1到10,所以在『For…Next』中的敘述區塊將會被執行10次,因此我們可對For-Next敘述分析如下。
第一次執行迴圈時,變數X被指定為起始值。
執行迴圈前,變數X都會先進行是否超過終止值的檢驗,若超過,則結束迴圈,否則就繼續執行迴圈內的敘述。
執行過迴圈後,變數X的值將會加上步進值(1)。
For-Next敘述其實還有一個步進值的設定,如果我們沒有特別指定步進值的大小,那步進值的大小就預設為(1),也就是說迴圈變會會在執行過迴圈後自動加(1)。
For-Next迴圈敘述區塊格式
For 計次變數=初值 To 終值 Step 步進值
要重複執行的敘述區塊
Next
複製代碼
例如:
For X=1 To 10 Step 2
Y=Y+X
Next
複製代碼
請問您:上例For-Next迴圈敘述結束後,變數Y等於多少?絕對不是55喔!
在我們這個例子中變數X被指定為起始值1,也就說變數X一開始是1,可是每執行一次迴圈後變數X並不是加1喔!而是加2,所以Y=1+3+5+7+9,答案應該是25。
For-Nex敘述不僅可以是遞增迴圈,也可以是遞減增迴圈,其格式如下:
For-Next遞減迴圈敘述區塊格式
For 計次變數=初值 To 終值 Step -步進值
敘述區塊
Next
複製代碼
也就說遞減迴圈For-Next敘述的起始值必須大於終止值,而判斷是否脫離迴圈的敘述就變成:計次變數值 < 終止值,同時:步進值一定要設定,並且步進值必須是負數!例如:
For X=10 To 1 Step -1
Y=Y+X
Next
複製代碼
實做學習
讓瀏覽者指定N值,然後計算1x2x……x(N-1)xN,並將計算結果顯示於網頁中。
[attach]219[/attach]
<%
num=request("num")
if num<>empty then
ans=1
for i=1 to num
ans=ans*i
next
end if
%>
<html>
<head>
<title>ex407</title>
</head>
<body bgcolor="#ffffff">
<form>
<table border="1">
<tr>
<td>請輸入N值</td>
<td><input type="text" size="15" name="num"></td>
</tr>
<tr>
<td colspan=2><input type=submit value="確定"></td>
</tr>
</tr>
<tr>
<td colspan=2>1乘到N答案是:<font color="red"><%= ans %></font></td>
</tr>
</table>
</form>
</body>
</html>
複製代碼
首先我們將變數Ans的值設為1,所以「Ans= Ans *1*2x…*N-1*N」等於「Ans= 1*2*……*N-1*N」,因此「Ans= 1*2*……*N-1*N」就等於「Ans= 1」、「Ans= Ans*2」、「Ans= Ans*3」。。。「Ans:= Ans*N」連續運算的結果,所以使用For-Next敘述將是最佳選擇。
作者:
小誌
時間:
2010-5-10 18:22
While-Wend迴圈敘述
當我們知道迴圈必須執行的次數時,For-Next敘述就是最好的迴圈敘述,但是若不知道迴圈必須執行的次數呢,那我們就可以使用While-Wend迴圈敘述,其格式如下:
While-Wend迴圈敘述區塊格式
While 條件式
要重複執行的敘述區塊
Wend
複製代碼
While-Wend迴圈敘述是由保留字While開始,在其後是一個條件式,而這個條件式則是一個布林值運算式,如果這個條件式成立(布林值運算結果為True),那麼在While-Wend迴圈敘述裡(敘述區塊)的程式碼就會執行至結尾,然後再判斷條件式,當這個條件式不再成立時,While-Wend迴圈敘述就會停止執行。現在我們來比較一下For-Next與While-Wend敘述:計算1加至10:
For-Next寫法:
For X=1 To 10
Y=Y+X
Next
複製代碼
While-Wend寫法:
X=1
While X <= 10
Y=Y+X
X=X+1
Wend
複製代碼
看完這兩個敘述的比較,您是不是發現:同樣的功能,但是While-wend敘述似乎麻煩多了,不過,若不知道迴圈會執行幾次,還是While-Wend敘述比較適合,如下例:
實做學習
請設計一ASP程式,計算6561是3的幾次方,並將答案顯示於網頁中。
[attach]220[/attach]
<html>
<head>
<title>ex410</title>
</head>
<body bgcolor="#ffffff">
<%
test=6561
while test>1
test=test/3
ans=ans+1
wend
response.write "6561是3的" & ans & "次方"
%>
</body>
</html>
複製代碼
提示
原始碼中的『&』符號是一個資料串接符號,它會將該符號前後的資料連接在一起,例如:”我是”&”book”,則串接後的字串資料就變成:”我是book”。
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)