どうも!リョクちゃです。
今回はVB.Netの文法、中でも制御構文について簡単に理解を深めていきます。
VB.Netでは主な制御構文は以下の通りです。
- 条件分岐 → If文
- 条件分岐 → Select~Case文
- 繰り返し処理 → For文
- 繰り返し処理 → For~Each文
- 繰り返し処理 → Do~While文
- 繰り返し処理 → While文
これらについて、書き方や使い方を紹介していきます。
ちなみに前回はこちら。
目次
条件分岐 : If文
条件分岐を記述するときに使用する、If文には3種類あります。
- If文
- If~ElseIf文
- If~Else文
それぞれ
IF:<基本構文>
1 2 3 |
If (条件式) Then ' 処理1 End If |
If~Else : <基本構文>
1 2 3 4 5 |
If (条件式) Then ' 処理1 ElseIf (条件式) Then ' 処理2 End If |
If~Else : <基本構文>
1 2 3 4 5 |
If (条件式) Then ' 処理1 Else ' 処理2 End If |
これらが基本の形になります。
条件式には何を書く?
たとえば、左辺と右辺の値が等しいときに処理がしたい場合は、
下のように書けます。
1 2 3 4 5 6 7 8 9 10 |
Public Sub TestIf() Dim a As Integer = 10 Dim b As Integer = 10 If (a = b) Then ' 等しい Console.WriteLine("等しい") End If End Sub |
If文中の条件式に注目してください。
a = bと書かれています。これはaとbが等しいかどうかを表しています。
この”=”(イコール)を比較演算子と呼びます。
条件式では左辺と右辺の判定を比較演算子や論理演算子と呼ばれる演算子を
用いて書いていきます。
下に主に使う演算子を載せておきますので必要に応じて使ってみてください。
主な条件式で使われる演算子一覧
No | 演算子 | 使い方 | 内容 |
---|---|---|---|
1 | = | a = b | aとbが等しい |
2 | < | a < b | bよりaが小さい |
3 | > | a > b | bよりaが大きい |
4 | <= | a <= b | a以下b |
5 | >= | a >= b | a以上b |
6 | <> | a <> b | aとbが等しくない |
7 | And | a = b And c = d | aとbが等しく 且つ cとdが等しい |
8 | Or | a = b Or c = d | aとbが等しい もしくは cとdが等しいとき |
9 | Not | Not( a > b) | bよりaが大きくない |
条件分岐 : Select ~ Case文
形は、If~ElseIfのように複数の条件に対応して処理が分岐する場合と似ています。
条件が複数になる場合、5個以上のときにはIf~ElseIf文で記述するよりも、
Select~Case文の方が簡潔に記述ができます。
これは可読性の向上にもつながるのでぜひ覚えておきましょう。
Select~Case : <基本構文>
1 2 3 4 5 6 7 8 9 10 |
Select Case <変数> Case 条件式1 ' 処理1 Case 条件式2 ' 処理2 Case 条件式3 ' 処理3 Case Else ' 処理4 End Select |
例を交えて書くと下のようにになります。
例) 変数aに任意の値が代入されます。
この値が整数10より”大きい”か”小さい”か出力してください。
※同じ場合は、”同じ”と出力してください。
1 2 3 4 5 6 7 8 9 10 |
Dim a As Integer = 13 Select Case a Case > 10 Console.WriteLine(“大きい”) Case < 10 Console.WriteLine(“小さい”) Case Else Console.WriteLine(“同じ”) End Select |
繰り返し処理 : For文
特定の回数だけ処理を繰り返すのがFor文になります。
For : <基本構文>
1 2 3 |
For <変数名> As <型名> = <開始番号> To <終了番号> [Step <ステップ番号>] ' 処理 Next [変数名] |
例えば、1から5までを1ごとに繰り返す場合は下のように書くことができます。
1 2 3 |
For a As Integer = 1 To 5 Step 1 Console.WriteLine(Str(a) & "回目の繰り返しです。") Next a |
繰り返し処理 : For Each文
コレクション内の全てのオブジェクトに同じ処理を実行します。
※ コレクションは、配列やリストなどを指します。
For Each : <基本構文>
1 2 3 |
For Each <変数名> As <型名> in <コレクション(配列変数orリスト変数)> ' 処理 Next [変数名] |
VBで配列やリストは、
- Dim a As String()
- Dim lstA As List(Of String)
と書くことができます。
配列の場合は、下のように書くことができます。
1 2 3 4 5 6 7 8 9 10 11 |
Public Sub Test() Dim a As String() = {"Hello", "World"} For Each str_a As String In a Console.WriteLine(str_a) Next str_a Console.WriteLine("終了") End Sub |
繰り返し処理 : Do~While文
条件が真偽に問わず処理を必ず1度だけ実行します。
その後、条件が真の間は処理を実行します。
Do~While : <基本構文>
1 2 3 |
Do While <条件式> ' 処理 Loop |
繰り返し処理 : While文
Do~While文と違って、必ず1度だけの実行はありません。
条件が真であれば処理の実行をします。
While : <基本構文>
1 2 3 |
While <条件式> ' 処理 End While |
ちなみに、条件式にTrueを設定すると無限ループになってしまうので、
コードに書く場合は、気を付けてください。
おわりに
Vb.Netではほかの言語と違って、わりと制御構文の種類が多いです。
必要に応じて使い分けていけるよう、ここで理解を深めていただけたらなと思います。
・こちらの書籍を参考にVB.Net勉強しています。