キーボード入力エラー再入力[VB]

キーボード入力エラー 再入力

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

キーボードから入力
文字列入力
整数入力
実数入力
入力エラー対応方法
数値変換 TryParse

次のサンプルプログラムを実行すると、次のように表示されます。先頭のマイナス文字を含めて、数字以外の文字を1文字でも入力すると、再度入力を求めてきて、数値データが入力されるまで、繰り返すようになっています。

実行結果

Do … Loop で再入力

入力した値が数値か否かを、IsNumeric関数で調べて、数値でなければ、DoLoop を利用して、キーボードから再入力できるようにしたサンプルプログラムを作成します。

DoLoop を利用すれば、数値を入力したときだけ、先に進めるようになります。

マイナス文字を含めて、数字以外の文字を1文字でも入力すると、再度数字の入力を求めてきます。

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

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関数による入力値のチェックさえも省略できます。

次回は、Integer.Parseメソッドを使ったサンプルプログラムを作成します。

Integer.TryParseメソッド

IsNumeric関数については、次のサンプルプログラムを参考にしてください。

IsNumeric関数