TryParseで数値に変換できる
キーボードから入力 |
---|
文字列入力 |
整数入力 |
実数入力 |
入力エラー対応方法 |
数値変換 TryParse |
キーボードからの入力したデータはすべて文字列として扱われるので、プログラム内で数値として扱うためには、Integer.TryParseメソッドや、Double.TryParseメソッドで、数値に変換する必要があります。
たとえば、Integer.TryParse を使えば、入力した文字列が、Integer型の整数であるかか否かをチェックして、整数に変換してくれるので、入力した文字列が整数か否かを調べる必要はありません。
入力値を IsNumeric関数でチェックするサンプル |
---|
整数に変換 Integer.TryParse
Integer.TryParseメソッドは、Integer.TryParse(inStr, InNum)ように、引数をふたつ指定します。一番目のinStrは String型で、整数に変換したい文字列(キーボードからの入力値など)、二番目の引数inNumは Integer型とし、instrの文字列が正しく整数に変換できたとき、その変換結果の整数が入ります。
正しく整数に変換できたかどうかは、Integer.TryParseメソッドの返り値で判ります。正しく変換できたときはTrueを、そうでなければ Falseを返します。
それでは、キーボードから入力したデータが、整数でなければ、Do Loop を使って再入力できるようにするプログラムを作成します。
ソースリストの枠内をクリックすると全選択できます。
Module Module1 Sub Main() ' 変数の宣言 Dim inStr As String Dim inNum As Integer ' 整数以外の入力のときは再入力 Do Console.WriteLine("** 整数を入力してください **") ' キーボードから入力 inStr = Console.ReadLine() ' Integer.TryParseメソッドで整数検査と変換 If Integer.TryParse(inStr, inNum) = True Then ' 正しく整数に変換された時 Console.Write("入力した整数=") Console.WriteLine(inNum) ' 正しく整数が入力されたので、Do Loopを抜ける Exit Do Else ' 整数に変換できなかった時 Console.WriteLine("入力値に誤りがあります") Console.WriteLine() End If Loop End Sub End Module
プログラムが完成したら、[Ctrl]キーを押したまま、[F5]キーを押して、プログラムを実行して確認してください。
実数に変換 Double.TryParse
Double.TryParse を使えば、整数変換と同様に、入力した文字列を実数に変換できます。
前のサンプルプログラムを実数が入力できるように修正します。
Module Module1 Sub Main() ' 変数の宣言 Dim inStr As String Dim inNum As Double ' 整数以外の入力のときは再入力 Do Console.WriteLine("** 実数を入力してください **") ' キーボードから入力 inStr = Console.ReadLine() ' Double.TryParseメソッドで数値検査と変換 If Double.TryParse(inStr, inNum) = True Then ' 正しく実数に変換された時 Console.Write("入力した実数=") Console.WriteLine(inNum) ' 正しく実数が入力されたので、Do Loopを抜ける Exit Do Else ' 実数に変換できなかった時 Console.WriteLine("入力値に誤りがあります") Console.WriteLine() End If Loop End Sub End Module