HOME -> プログラム -> VBScript -> VBS 基礎-5 ループ式

VBS 基礎-5 ループ式

Do While ~ Loop

Dim counter, val
counter = 0
val = 20
Do While val > 10
	val = val - 1
	counter = counter + 1
Loop
MsgBox( "Counter is " & counter )
 do while 条件 ~ loop は条件が正の間、処理を繰り返します。上記ではvalの価が10以下になるまでループを繰り返します。 この do while ~ loop ですが書き方は二通りあります。
 以下のコードを参照してください。
Dim counter, val
counter = 0
val = 5
Do While val > 10
	val = val - 1
	counter = counter + 1
Loop
MsgBox( "Counter is " & counter )
Dim counter, val
counter = 0
val = 5
Do
	val = val - 1
	counter = counter + 1
Loop While val > 10
MsgBox( "Counter is " & counter )
 前者は counter は 0ですが、後者ではcounterは1となります。 do while 条件 処理 loop の書き方では条件が判定された後に処理が行われるので、最初から条件が負であれば処理は行われません。 一方の do 処理 loop while 条件 という書き方では処理が行われた後に条件が判定されるので、最低でも1回は処理が行われます。 上記を十分理解して使い分けてください。

for to next

Dim i, total
total = 0
for i = 0 to 10
	total = total + i
next
MsgBox("counter" & total )
 上記、for 開始 to 条件 処理 next は指定数までループを行うといった場合に利用します。 ループが開始する際に for ~ to が実行されます。 ここでは変数 i に0が挿入されています。 次に to 条件 に開始時に初期化された変数が至るまで ~ next までのループが繰り返されます。 通常のループでは初期化された変数に一回ループされる毎に 1 づつ値が増加されていきます。 もし、一回のループで +2 づつ値を増やしたいのであれば
Dim i, total
total = 0
for i = 0 to 10 step 2
	total = total + i
next
MsgBox("counter" & total )
 to 条件 step 増減数 とします。上記であれば一回のループで i には 2 づつ値が増加してゆくことになります。 stepには 負の値も設定できますので
Dim i, total
total = 0
for i = 10 to 0 step -1
	total = total + i
next
MsgBox("counter" & total )
 とすることも可能です。

for each in next

Dim ar(2)
ar(0) = "A"
ar(1) = "B"
ar(2) = "C"
for each i in ar
	MsgBox( " is " & i )
next
 PHPでいうところの foreach() に相当します。 for each 変数 in 配列やオブジェクト 処理 next という形式になっていて、 in直後の配列(又はオブジェクト)の内容を逐一取得し、それを each 直後の変数に格納してループを行います。 配列(又はオブジェクト)の内容を全て取得し終わったら next 以降に処理を抜けるようになっています。


2008年 10月 7日ドキュメント作成
2008年 10月 9日ドキュメント更新