Exit Do 強制終了 [VB]

繰り返し処理を途中で終了する

繰返し制御文
For Next
For Next 入れ子
For Step Next
For Each Next
Exit For 強制終了
Do While Loop
Do Until Loop
Do Loop While
Do Loop Until
Exit Do 強制終了

Exit Do を使うと、強制的に繰り返し処理を途中で終了させることができます。

Exit Do は、直ちに繰り返し処理を終了し、繰り返し処理の次からプログラムを実行することができます。

たとえば、Do Loop で繰り返し処理を書くと、繰り返しの終了判定がないので、繰り返し処理を永久に実行することになり、プログラムが終了しません。繰り返し処理をを抜けるためには、Exit Do を使います。

Do While Loopや、 Do Until Loop のように繰り返し終了判定があっても、繰り返し処理を途中で抜ける必要がある時にも、Exit Do を使うことができます。


Exit Do を使ったサンプルプログラム

Do Loop と、Exit Do を使って、キーボードから入力した数値の合計を求めるプログラムを作成します。

キーボードから end を入力すると、合計値を画面に表示してプログラムを終了します。

入力値を文字列から整数に変換するために、Integer.TryParse(入力文字列,変換後の整数)を使い、整数か否かを判定し、整数でなければ、再入力を促すようにプログラミングします。

ソースリストの枠内をクリックすると全選択できます。

Module Module1

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

      Console.WriteLine("入力した整数の合計値を表示します")

      ' end が入力されるまで数値の入力を続ける
      Do
          Console.WriteLine("整数を入力して下さい")
          Console.WriteLine("end入力すると合計を表示します")
          ' キーボードから入力
          inStr = Console.ReadLine()
          ' 入力した文字列を整数に変換
          If Integer.TryParse(inStr, inNum) = True Then
              ' 整数に変換できた時
              ' 入力値を合計値に加算
              sum = sum + inNum
          Else
              ' 整数に変換できなかった時
              If inStr = "end" Then
                  ' end 入力なら Do Loop を抜ける
                  Exit Do
              Else
                  ' end 以外なら再入力
                  Console.WriteLine(inStr & "は整数ではありません")
              End If
          End If
       Loop

      ' 合計値を表示
      Console.WriteLine()    ' 改行
      Console.WriteLine("入力した整数の合計は")
      Console.Write(sum)     ' 改行しない
      Console.WriteLine("です")
      Console.WriteLine("お疲れ様でした")
  End Sub

End Module

上の例では、繰り返し処理の終了判定は、 If inStr = "end" Then でしています。"end"が入力されたら、Exit Do を実行して、繰り返し処理を終了します。

次回は、配列 について学習します。

次回:配列