0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VB.net 基本的な文法(判定編1)If文

Posted at

前回の記事では、変数や定数の宣言方法を記載しました。
https://qiita.com/HiHiroyoshi/items/e306955c364db95f8f3e

#今回の記事では、判定文(If文やSelect文)について述べます。

では、早速 変数が10の場合に何かしらの処理を行うプログラムを記載します。

Dim hoge As Integer = 10

Dim checkflag As Boolean = False

'判定文
If hoge = 10 Then
    'True の時の命令
    checkFlag = True
End If

こういった形で、記載を行います。
もっと、スマートな書き方があると思われる方もいるはずですが、
初心者向けという点でご容赦ください。

注意点としては、checkFlagは、If文の前で宣言していることです。
スコープ という考えがあり、If文内で変数を宣言した場合、
If文内でしか使えない為です。

仮にcheckFlagをIf文内で宣言してIf文の下で利用しようとしても、
エラーが発生します。


Dim hoge As Integer = 10

'判定文
   If hoge = 10 Then
'True の時の命令
     Dim checkFlag As Boolean
     checkFlag = True
   End If

'ここでエラーが発生
  checkFlag = False

仮に入力チェックを行う際は、全体のエラーフラグ(errorFlag)を判定文の前に置き、その都度If文を用いて、個々のエラー判定の際に、errorFlagにFalseを入れてあげるような書き方が挙げられます。

では、このIf文をさらに改造していきましょう。
例えば、Trueでないときにも処理を行う場合、


Dim hoge As Integer = 10
Dim checkFlag As Boolean
'判定文
If hoge = 10 Then
    'True の時の命令
    
    checkFlag = True
    
Else '一致しない False場合

    checkFlag = False
    
End If

といった、Else(それ以外)の場合の処理を行います。
では、If-Else文をさらに発展させましょう。

Dim hoge As Integer = 15

'Stringは文字列を表します。
Dim message As String

'判定文
If hoge < 10 Then
    '10未満の時の命令
    message = "値が10未満です。"
ElseIf hoge >= 10 And hoge <= 20 Then

    message = "値が10以上20以下です。"

Else 'その他

    message = "値が20より大きい場合"

End If


といった形になります。hogeの値を変更してみて、
全てのmessageの分岐を確認してみましょう。

では、 実務におけるIf文の使いかた を一つ挙げましょう。

Dim stringNumber As String = "15"

Dim hoge As Integer

Dim message As String

If Integer.TryParse(stringNumber, hoge) Then

    '判定文
    If hoge < 10 Then
        '10未満の時の命令
        message = "10未満です。"
    ElseIf hoge >= 10 And hoge <= 20 Then

        message = "10以上20以下です。"

    Else 'その他

        message = "20より大きい場合"

    End If

Else
    message = "整数に変換できません。"

End If


新たに2点の変更がありますね。
Integer.TryParseとIf文の中にIf文が入っています。

1つ目のInteger.TryParseは、ある文字列(stringNumber)を数字(hoge)に置き換える。置き換えた際の結果がTrue(置き換えできた)かFalse(置きかえできない)かを判定するものです。

なので、文字列を整数に変換できなかった場合、
message = "整数に変換ができません"
が実行されます。

整数に変更できた場合は、さらにネスト(入れ子)にしたIf文が実行されていく形となります。

業務でプログラミングする上、気をつけてほしいのは、 ネストの行いすぎ です。

If文の中にIf文、さらにIf文を書いていくとプログラム自体が読みにくくなるため、If文内でのIf文の多用は避けるべきだと考えています。

まとめ

If文やIf文のネスト、実務での利用の一例を挙げました。
次回は、vb.netでのSelect文を取り上げる予定です。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?