Exit For 強制終了 [VB]

Visual Basic 文法[2015 2013 2012]

終了条件を満たす前にループから抜ける

For Next ループ処理中に、Exit For を記述すると、強制的に Next の次にプログラムの制御を移すことができます。

たとえば、For Next ステートメントで、指定回数の処理を繰り返す前に、For Next を抜けたい時は、For Next を抜けたいところに、Exit For を記述すれば、即座に Next の次からプログラムが再開されます。

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

キーボードから正の整数を10個または、0かマイナスの整数を入力したら、それまでに入力した整数の合計値を表示するプログラムを作成します。ただし、プログラム終了のために入力した0またはマイナスの整数は加算しません。

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

Module Module1

  Sub Main()
      Console.WriteLine("*** 入力値の合計を求める ***")
      Console.WriteLine()        ' 改行

      ' 変数の宣言
      Dim inStr As String
      Dim inNum As Integer
      Dim sum As Integer = 0

      ' キーボードから最大10回整数を入力し
      ' その合計を求める
      For i As Integer = 1 To 10
          Console.WriteLine(i & "番目の数字を入力して")
          Console.WriteLine("Enterキーを押してください")
          ' キーボードから入力
          inStr = Console.ReadLine()
          ' 文字列を整数に変換
          inNum = Integer.Parse(inStr)
          ' 入力値の判定
          If inNum <= 0 Then
              ' 0以下を入力したら、For Nextを抜ける
              Exit For
          Else
              ' 入力値を前回までの合計値に加算
              sum = sum + inNum
          End If
      Next

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

End Module

ただしこのプログラムには問題があります。せっかく途中まで正しく入力しても、1回でも入力ミスして、整数以外の数値を入力すると、エラーでプログラムが終了してしまうことです。

[広告]