キーボード入力エラー処理 [VB]

Visual Basic 文法[2015 2013 2012]

入力エラーが起きたら再入力

キーボードから入力したデータが整数値でなければ、エラーメッセージを表示して、再入力できるように改良します。

Do ... Loop で再入力

入力した値が数値か否かを、IsNumeric関数で調べて、数値でなければ、Do ... Loop を利用して、再入力できるようにしたサンプルプログラムです。

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

Module Module1

  Sub Main()
      ' 変数の宣言
      Dim inStr As String
      Dim inNum As Integer
      ' 数値以外の入力は再入力
      Do
          Console.WriteLine("** 数値を入力してください **")
          ' キーボードから入力
          inStr = Console.ReadLine()
          ' IsNumeric関数で数値検査
          If IsNumeric(inStr) = True Then
              ' 数値を入力したら、Do Loopを抜ける
              Exit Do
          Else
              Console.WriteLine("数字以外の文字があります")
              Console.WriteLine()
          End If
      Loop
      ' 入力した文字列を数値に変換
      inNum = Integer.Parse(inStr)
      ' 入力値の確認
      Console.Write("入力した数値=")
      Console.WriteLine(inNum)
  End Sub

End Module

【注意】ただし、これでも完璧ではありません。これでも例外が発生することがあります。例外を発生させないためには、Integer.Parseの代わりに、Integer.TryParseを使います。Integer.Parseメソッドは、IsNumeric関数で入力値のチェックさえも省略できます。