キーボード入力エラー 再入力
キーボードから入力したデータが整数値でなければ、エラーメッセージを表示して、再入力ができるようにするプログラムを作成します。
キーボードから入力 |
---|
文字列入力 |
整数入力 |
実数入力 |
入力エラー対応方法 |
数値変換 TryParse |
次のサンプルプログラムを実行すると、次のように表示されます。先頭のマイナス文字を含めて、数字以外の文字を1文字でも入力すると、再度入力を求めてきて、数値データが入力されるまで、繰り返すようになっています。
Do … Loop で再入力
入力した値が数値か否かを、IsNumeric関数で調べて、数値でなければ、Do … Loop を利用して、キーボードから再入力できるようにしたサンプルプログラムを作成します。
Do … Loop を利用すれば、数値を入力したときだけ、先に進めるようになります。
マイナス文字を含めて、数字以外の文字を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関数 |
---|