【VB.NET】Do Until Loop ループの使い方

VB.NET
この記事は約3分で読めます。

概要

繰り返し回数が事前に分からないけど、条件はわかるという場合には Do Until Loopループ が使えます。条件が偽(False)である限り処理を続けることが出来ます。Until は 「~まで」という意味です。Do while Loop と似ていますが、

Do while Loop 条件に充てはまると処理
Do Until Loop 条件に充てはまらないと処理

という違いがあります。

基本的な構文は

Do Until 条件式
    処理
Loop

内容

サンプルコードは、コンソール画面から入力されるまで、”助けてくれますか?はい or いいえ”がループします。
RPGの 村人「助けてくれますか」に対して「はい」を選ぶまで、会話がループするイメージです。

Module Module1

    Sub Main()
        ' 変数の宣言
        Dim inStr As String = ""

        ' はいを入力するまで続ける
        Do Until inStr.Equals("はい")
            Console.WriteLine("助けてくれますか?はい or いいえ")
            ' キーボードから入力
            inStr = Console.ReadLine()
        Loop

        ' 結果を表示
        Console.WriteLine()    ' 改行
        Console.WriteLine("ありがとう")
        Console.ReadKey()
    End Sub

End Module

実行例

助けてくれますか?はい or いいえ
いいえ
助けてくれますか?はい or いいえ
いいえ
助けてくれますか?はい or いいえ
やだ
助けてくれますか?はい or いいえ
たすけない
助けてくれますか?はい or いいえ
はい

ありがとう

 

Do Until Loop ループと Do While Loop の違い

判定が、真(True)だと実行するのがDo While Loop で、
判定が、偽(False)だと実行するのがDo Until Loop なので以下のコードは等価になります。
個人的には While に Not を付ける方が好き。

        ' はい入力するまで続ける
        Do While Not inStr.Equals("はい")
            Console.WriteLine("助けてくれますか?はい or いいえ")
            ' キーボードから入力
            inStr = Console.ReadLine()
        Loop
        ' はい入力するまで続ける
        Do Until inStr.Equals("はい")
            Console.WriteLine("助けてくれますか?はい or いいえ")
            ' キーボードから入力
            inStr = Console.ReadLine()
        Loop

コメント

タイトルとURLをコピーしました