メイン画像

VBScript - ループの先頭に戻す(Continue)

VBScript - ループの先頭に戻す(Continue)


VBScript にはループを途中で抜ける Exit ステートメントはあるのだが、ループの先頭に戻る Continue ステートメントがない。

ループを先頭に戻すには一工夫必要である。

(ちなみに VBA も同様)

 

次のスクリプトは数値が 1~9 の間ループし、数値が偶数のときだけメッセージを出す。

このスクリプトを、数値が偶数でなければループの先頭に戻るようにしてみたい。

Dim i
For i = 1 To 9
  '偶数であれば処理する
  If i Mod 2 = 0 Then
    MsgBox CStr(i) & "は偶数"
  End If
Next

 

Do...Loop ステートメントを使うことで、Continue のような振る舞いができる。

ループの先頭に戻すときは Exit DoDo...Loop を抜ける。
すると Loop While False の直後にある Next に制御が移るので、そのまま次の For ループが始まる。
(ループの先頭に戻るのと実質同じ)

ループが最後まで到達した場合は、Loop While False としてあるので、そのまま Do...Loop は終了となる。
あとは Exit Do したときと同じで、次のループに処理が移る。

Dim i
For i = 0 To 9
  Do
    '偶数でなければ処理しない
    If i Mod 2 <> 0 Then
      Exit Do    '← ここでループを抜ける(Loop While False の次に移る)
    End If

    '偶数であれば処理する
    MsgBox CStr(i) & "は偶数"
  Loop While False
Next

アカウントを作成 して、もっと沢山の記事を読みませんか?


この記事が気に入ったら ことりと さんを応援しませんか?
メッセージを添えてチップを送ることができます。


この記事にコメントをしてみませんか?


酒とアクアリウムが最近の楽しみ。

おすすめの記事