While-Wend迴圈
今天我們要來練習While-Wend迴圈
While-Wend能夠判別判斷是是否成立,如果成立的話就會執行敘述
為什麼不直接用For-Next?
For-Next是「計次」迴圈,如果你不知道迴圈要執行的次數,根本就沒有辦法用
但While-Wend就不一樣了,它是在執行迴圈前,先判別條件式後,如果成立,就執行敘述區塊,不成立,直接跳出迴圈
While-Wend格式如下:
While 條件式
敘述區塊
Wend
舉個例子吧!
I = 1 While I <= 10 Print I I = I + 1 Wend |
上面的程式,I一開始會等於1,然後進入While-Wend迴圈(因為,1<=10)
接著輸出I的值(Print I),也就是輸出1
然後將I+1後又存到I(I = I + 1),即I=1+1=2
再來回到While判別條件式,I=2,2<=10,成立!
然後輸出I的值(Print I),也就是輸出2
然後將I+1後又存到I(I = I + 1),即I=2+1=3
再來回到While判別條件式
就這樣一直反覆後,到了 I=10 …
I=10,10<=10,成立!
然後輸出I的值(Print I),也就是輸出10
然後將I+1後又存到I(I = I + 1),即I=10+1=11
回到While判別條件式,I=11,11<=10,不成立!!
不成立的話,會立刻跳出迴圈,也就是不會執行Print I和I = I + 1,所以表單上不會輸出11,只有1~10
當然,這與我們先前教過的利用For-Next顯示1~10一樣,程式碼如下:
For I = 1 To 10 Print I Next I |
你又會發現一件事,用For-Next寫出來的程式碼怎麼比較少啊!
因此,我們可以知道,如果已知迴圈的執行次數時,用For-Next會比較方便
我們再舉一個While-Wend的例子吧
N = 0 While 2 ^ N < 1024 N = N + 1 Wend Print "1024是2的"; N; "次方" |
這是一個方便的程式,能夠判斷某數是2的多少次方
來講解一下
N一開始為0(N = 0,其實這行可以省略,因為N的初始值就是0)
接著進入While迴圈,2的0次方等於1,1<1024,成立!
接著N=N+1,即N=0+1=1
然後回到While判別式,2的1次方等於2,2<1024,成立!
接著N=N+1即N=1+1=2
然後一直這樣循環
到了N=9的時候
2的9次方=512,512<1024,成立!
接著接著N=N+1即N=9+1=10
然後回到While判別式,2的10次方等於1024,1024<1024,不成立!,1024應等於1024,不應小於
所以會立刻跳出迴圈,執行「Print “1024是2的”; N; “次方”」
就會輸出「1024是2的 10 次方」
怎麼樣? VB好用吧!
.
While-Wend也常應用在連續性資料輸入上面,輸入某數就跳出迴圈,舉個例子:
1 2 3 4 5 6 |
X = InputBox("請輸入指令") While X <> "exit" And X <> "quit" MsgBox "您輸入了" & X X = InputBox("請輸入指令") '繼續讀取資料 Wend MsgBox "您輸入了" & X & ",結束程式!" |
X的值可以讓使用者自由輸入,如果使用者輸入1,那X<>exit和X<>quit就成立!(X=1,1不等於exit和quit)
接著跳出訊息方塊「您輸入了1」,然後繼續要求使用者輸入X的值
如果X=exit那X<>exit和X<>quit就不成立(X不等於quit但等於exit,可是條件式要兩個都不等於)
所以會立刻跳出迴圈,並執行迴圈外下一行的程式,所以會跳出訊息方塊「您輸入了exit,,結束程式!」
.
基本上While-Wend迴圈的用法就是這樣,計次寫法能跟For-Next互相轉換,不過While-Wend是While-Wend,For-Next是For-Next,兩者都很重要,都要會喔!!
本篇文章就到此結束了!