循環(huán)是指在指定情況下,多次重復(fù)執(zhí)行一組語(yǔ)句。最常用(for …next、 do …loop),
1、重復(fù)執(zhí)行的語(yǔ)句叫循環(huán)語(yǔ)句。
循環(huán)語(yǔ)句可以分為三種類型:
(1)、當(dāng)條件不為假之前的時(shí)候重復(fù)執(zhí)行語(yǔ)句。
(2)、當(dāng)條件變?yōu)檎嬷爸貜?fù)執(zhí)行語(yǔ)句。
(3)、按指定的次數(shù)重復(fù)執(zhí)行語(yǔ)句。
2、For…Next 循環(huán) 如果重復(fù)操作的次數(shù)固定,使用 For…Next 循環(huán)是一個(gè)很好的選擇,此外也將介紹語(yǔ)法很類似的 For Each…Next循環(huán),它適用在數(shù)組或集合的重復(fù)循環(huán),(一)For…Next 在 For…Next 循環(huán)的語(yǔ)法中使用初值、終值、步長(zhǎng)以及循環(huán)變量來(lái)完成重復(fù)計(jì)數(shù)的工作。當(dāng)進(jìn)入循 環(huán)第 一次執(zhí)行時(shí),循環(huán)變量便由初值開(kāi)始累加一次步長(zhǎng),一直到等于或超過(guò)終值為止。
例如:
初值為1,終 值為 10, 步長(zhǎng)為 2,
則循環(huán)將執(zhí)行 5 次,
循環(huán)變量的值分別是 1、3、5、7、9,
第六次因循環(huán)變量累加到 11, 已經(jīng)超過(guò) 10 了,便不再執(zhí)行循環(huán)。
3、For…Next 循環(huán)的語(yǔ)法如下:
For 循環(huán)變量=初值 To 終值 Step 步長(zhǎng)
程序語(yǔ)句…
[ Exit For]
程序語(yǔ)句…
Next
說(shuō)明:
(1)、循環(huán)變量:這個(gè)變量通常是使用整數(shù),但是必要時(shí)也可以是其他數(shù)值類型,他是一個(gè)數(shù)值變量。
(2)、初值:這是循環(huán)變量的初始值,為數(shù)值類型。其值不一定是整數(shù), 或小數(shù),VB會(huì)自動(dòng)給他取整數(shù)
(3)、終值:循環(huán)變量的終值,為數(shù)值類型。 其值不一定是整數(shù), 或小數(shù),VB會(huì)自動(dòng)給他取整數(shù)
(4)、步長(zhǎng):循環(huán)變量每次的增加量,步長(zhǎng)的數(shù)值類型應(yīng)該和循環(huán)變量一樣, 其值可以是正數(shù)(遞增循環(huán))或是負(fù)數(shù)(遞減循環(huán)),當(dāng)不能為0,如果沒(méi)有特別指定,則步 長(zhǎng)默 認(rèn)為 1。
(5)、循環(huán)體:在For語(yǔ)句和Next語(yǔ)句之間的語(yǔ)句,可以是一個(gè)或多個(gè)語(yǔ)句.
(6)、Next:是循環(huán)終端語(yǔ)句,在Next后面的"循環(huán)變量"與For語(yǔ)句中的"循環(huán)變量"必須相同.
如:for i=0 to 10 Step 1
......
Next
執(zhí)行過(guò)程:
(1)、把初值1賦給循環(huán)變量i
(2)、將i的值與終值10進(jìn)行比較,若i>10,則跳出循環(huán),執(zhí)行(5),否則執(zhí)行循環(huán)體.
(3)、i增加一個(gè)步長(zhǎng)值,即i=i+1
(4)、返回(2)繼續(xù)執(zhí)行
(5)、執(zhí)行Next語(yǔ)句后面的代碼
這個(gè)循環(huán)的作用是:根據(jù) FOR 語(yǔ)句中所的初值、終值和步長(zhǎng),來(lái)確定循環(huán)次數(shù),反復(fù)執(zhí)行循環(huán)體內(nèi)各語(yǔ)句。For…Next 循環(huán)尊循"先檢查、后執(zhí)行"的原則,即先檢查循環(huán)變量是否超過(guò)終值,
然后決定是否執(zhí)行循環(huán)體。因此,在下列情況下,循環(huán)體將不會(huì)執(zhí)行,
(1)、當(dāng)步長(zhǎng)這正數(shù),初值大于終值
(2)、當(dāng)步長(zhǎng)這負(fù)數(shù),初值小于終值
當(dāng)初值等于終值時(shí),不管步長(zhǎng)是正數(shù)還是負(fù)數(shù),都執(zhí)行一次循環(huán).
For語(yǔ)句和Next語(yǔ)句必須成對(duì)出現(xiàn),不能單獨(dú)使用,并且For語(yǔ)句必須在Next語(yǔ)句之前.
循環(huán)次數(shù)N 的一般公式為:
N=Int((終值-初值)/步長(zhǎng))+1
For…Next循環(huán)中的初值小于終值時(shí),步長(zhǎng)必須為正值,表示由小到大計(jì)數(shù);若初值大于終值時(shí),步長(zhǎng)必須設(shè)為負(fù)值,表示由大到小計(jì)數(shù)。
例如:初值小于終值時(shí)
代碼如下:
<%
for i=0 to 10 Step 1 '默認(rèn)步長(zhǎng)為1可以不寫(xiě)
Response.Write(i&"
")
Next
%>
例如:初值大于終值時(shí)
代碼如下:
<%
for i=10 to 1 Step -1
Response.Write(i&"
")
Next
%>
當(dāng)步長(zhǎng)大于0時(shí):當(dāng)初值<=終值時(shí),F(xiàn)or…Next之間的語(yǔ)句會(huì)被執(zhí)行一次,接著循環(huán)變量會(huì)被加上步長(zhǎng),如果還小于終值,則再執(zhí)行一次For…Next之間的語(yǔ)句,一直到循環(huán)變量累加到大于終值,才會(huì)跳離For…Next循環(huán)。
代碼如下:
<%
for i=1 to 1 Step 0.5
Response.Write(i&"
")
Next
%>
當(dāng)步長(zhǎng)小于0時(shí):當(dāng)初值>=終值,會(huì)執(zhí)行循環(huán)內(nèi)的語(yǔ)句一次,然后循環(huán)變量減去步長(zhǎng)(負(fù)的),如果循環(huán)變量還>=終值,則再執(zhí)行一次循環(huán)內(nèi)的語(yǔ)句,一直到循環(huán)變量累加到小于終值,才會(huì)跳離For…Next循環(huán)。
循環(huán)語(yǔ)句的執(zhí)行過(guò)程:
代碼如下:
<%
for i=2 to 1 Step -1
Response.Write(i&"
")
Next
%>
4、循環(huán)語(yǔ)句的執(zhí)行過(guò)程:
(1)通過(guò)For語(yǔ)句進(jìn)入循環(huán)。如果循環(huán)變量的初值、終值、步長(zhǎng)為算術(shù)表達(dá)式,系統(tǒng)首先計(jì)算出算術(shù)表達(dá)式的值,然后將初值賦給循環(huán)變量,并將終值、步長(zhǎng)的值存入內(nèi)存
(2)將循環(huán)變量的值與終值進(jìn)行比較,當(dāng)循環(huán)變量的值未超過(guò)終值的范圍時(shí),則順次執(zhí)行循環(huán)體內(nèi)的各個(gè)語(yǔ)句。若循環(huán)變量的值超過(guò)終值的范圍,則退出循環(huán),執(zhí)行NEXT的后繼語(yǔ)句。
(3)在執(zhí)行完循環(huán)體各語(yǔ)句后遇到NEXT語(yǔ)句,將循環(huán)變量增加一個(gè)步長(zhǎng)的值,再去終值,比較,如果仍不超過(guò) 起開(kāi)潿,則再次執(zhí)行循環(huán)體內(nèi)的各語(yǔ)句,這樣重復(fù)執(zhí)行,直到循環(huán)變量的值超過(guò)終值的范圍,結(jié)束該循環(huán),執(zhí)行Next的后繼語(yǔ)句。
課堂例題:
【例 1】
簡(jiǎn)單1加到10,用循環(huán)特點(diǎn)每次加1
代碼如下:
<%
for i=0 to 10
sum=sum+i
Next
Response.Write(sum)
%>
最終顯示結(jié)果:55
【例 2】
代碼如下:
<%
for i=0 to 10 step 2
Response.Write(i&"
")
Next
%>
最終顯示結(jié)果:0,2.4,6,8,10
【例 3】
代碼如下:
<%
for i=0 to 10
Response.Write(i&"
")
if i=5 then
exit for'強(qiáng)制結(jié)束循環(huán)
end if
Next
%>
在上述程序中,原本 i 會(huì)從1 累加到10,執(zhí)行 10次,但是在 i 累加到 5 時(shí),符合了 i=5 的判斷式,結(jié)
果執(zhí)行 Exit For 語(yǔ)句,跳離了循環(huán),因此最后網(wǎng)頁(yè)顯示的結(jié)果是“0,1,2,3,4,5,”
【例 4】
代碼如下:
<%
for i=10 to 0 step -1
sum=sum+i
Next
Response.Write(sum)
%>
最終顯示結(jié)果:55
5、我們以范例來(lái)說(shuō)明 For…Next循環(huán)的不同用法:
【例 1】
代碼如下:
<% For i=1 To 10
Response.write i&","
Next
%>
上列程序會(huì)累加上 I,而循環(huán)中的 i 會(huì)由1,2,3,…每次累加 1,一直到 10,總共執(zhí)行 10 次,最后網(wǎng)頁(yè)會(huì)顯示出“1,2,3,4,5,6,7,8,9,10, ”
【例 2】
代碼如下:
<%
For a=1 To 10 Step 0.5
Response.write a&","
Next
%>
上列程序中 a將每次累加 0.5,總共執(zhí)行 20 次,最后在網(wǎng)頁(yè)中,顯示出“1,1.5,2,2.5,3,3.5…
9.5,
【例 3】
代碼如下:
<%
For j=10 To 1 Step -1
Response.write j&","
Next
%>
上列程序中j 將由 10到 1,每次累減 1,最后在網(wǎng)頁(yè)中,顯示出“10,9,8,7,6,5,4,3,2,1, ”
【例 4】
循環(huán)中的初值、終值和步長(zhǎng),在程序一開(kāi)始執(zhí)行時(shí)只讀入一次,隨后即使在循環(huán)內(nèi)更改其值,也不會(huì)對(duì)循環(huán)執(zhí)行有所影響。
代碼如下:
<%
StepNum=1
EndNum=1
For i=1 To endNum Step stepNum
Response.write i&","
StepNum=StepNum-0.1
EndNum=EndNum+1
Next
%>
上列程序中,故意在循環(huán)內(nèi)將步長(zhǎng)每次減少 0.1,將終值每次都加 1,意圖使 i 永遠(yuǎn)達(dá)不到終值,但是因?yàn)椴介L(zhǎng)和終值都只讀取一次,便不會(huì)再更改,因此這段程序的輸出結(jié)果還是“1” 。
【例 5】
循環(huán)中的循環(huán)變量,是會(huì)在循環(huán)中更動(dòng)的,因此:
代碼如下:
<%
For k=1 To 10
Response.Write k&","
Next
%>
上列程序會(huì)累加上 k,而循環(huán)中的 k 會(huì)由1,2,3,…每次累加 1,一直到 10,總共執(zhí)行 10 次,最后網(wǎng)頁(yè)會(huì)顯
示出“1,2,3,4,5,6,7,8,9,10,
更多信息請(qǐng)查看IT技術(shù)專欄