キーボード入力エラー処理 [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

実行結果は次のようになります。マイナス文字を含めて、数字以外の文字を1文字でも入力すると、再度数字の入力を求めてきます。

実行結果

【注意】ただし、これでも完璧ではありません。これでも例外が発生することがあります。

例外を発生させないためには、Integer.Parseの代わりに、Integer.TryParseを使います。Integer.Parseメソッドは、IsNumeric関数による入力値のチェックさえも省略できます。次のサンプルプログラムを参考にしてください。

[広告]と関連コンテンツ
[広告]