VB.NETのWhile文のサンプルです。条件で処理の繰り返しを制御します。
目次
While文 | While文とは / While文のサンプル |
Exit | ループを抜ける(Exit) / 二重ループを抜ける |
Continue | ループの先頭に戻る(continue) / 二重ループでcontinueを使用 |
do...while文 | do...while文にあたる書き方 |
演算子 | 比較演算子 |
While文とは
While 条件式 処理 End While |
- 条件がtrueの間、処理を繰り返します。
- 条件式がfalseの場合、処理を終了します。
- 最初の判定がfalseの場合、処理は1回も実行されません。
- 処理に条件式をfalseにするロジックがないと無限ループになるので注意が必要です。
While文のサンプル
Module Module1
Sub Main()
Dim i As Integer = 0 '変数
While i < 3
Console.WriteLine(i) '0 1 2が出力される
i = i + 1
End While
End Sub
End Module
5行目は、値が3より小さい間、処理を繰り返します。
7行目は、条件になる値を加算しています。
ループを抜ける(Exit)
Module Module1
Sub Main()
Dim i As Integer = 0 '変数
While i < 5
If (i = 3) Then
Exit While
End If
Console.WriteLine(i) '0 1 2が出力される
i = i + 1
End While
End Sub
End Module
7行目のExit Whileは、while文を抜けます。
二重ループを抜ける
Module Module1
Sub Main()
Dim i As Integer = 0
Dim outFlg As Boolean = False
While True
While True
If (i = 3) Then
outFlg = True
Exit While
End If
Console.WriteLine(i) '0,1,2が出力される
i = i + 1
End While
If (outFlg = True) Then
Exit While
End If
End While
End Sub
End Module
6,7行目にWhileがある2重ループです。
10行目のExitは内側のwhile文(7行目)のみ抜けます。
外側のwhile文(6行目)を抜けるために9行目でフラグを使用し16行目のExitで外側のwhile文を抜けています。
ループの先頭に戻る(continue)
Module Module1
Sub Main()
Dim i As Integer = 0 '変数
While i < 5
If (i = 3) Then
i = i + 1
Continue While
End If
Console.WriteLine(i) '0,1,2,4が出力される
i = i + 1
End While
End Sub
End Module
8行目のcontinueは、次は5行目を実行します。そのため10行目の文字列の出力は実行されません。
このサンプルでは7行目の加算がないと無限ループになるので注意して下さい。
二重ループでcontinueを使用
Module Module1
Sub Main()
Dim i As Integer = 0 '変数
Dim j As Integer = 0 '変数
While i < 2
While j < 2
If (j = 0) Then
j = j + 1
Continue While
End If
Console.WriteLine("j=" & j) 'j=1が出力される
j = j + 1
End While
Console.WriteLine("i=" & i) 'i=0 i=1 が出力される
i = i + 1
End While
End Sub
End Module
6,7行目にWhile文があり二重ループ(入れ子)になっています。
10行目のContinue Whileは、内側のWhile文の先頭の7行目に戻ります。
do...while文にあたる書き方
- do...while文にあたる書き方のサンプルです。
- 処理は、必ず1回は実行されます。
- 処理に、条件をfalseにするロジックがないと無限ループになるので注意が必要です。
Module Module1
Sub Main()
Dim a As Integer = 0 '変数
Dim b As Integer = 0 '変数
' 1つめの書き方
Do
Console.WriteLine(a) '0 1 2 3が出力される
a = a + 1
Loop While a < 3
' 2つめの書き方
While True
Console.WriteLine(b) '0 1 2 3が出力される
b = b + 1
If b > 2 Then
Exit While
End If
End While
End Sub
End Module
6~9行目はDo...Loop文でLoopの横にWhileと条件があります。最初の1回は必ず実行されます。
11行目は、While Trueで最初の1回は必ず実行されます。
13行目は、ループの変数を1加算しています。
14行目の条件がtrueになったときに15行目のExitでWhile文を抜けます。
比較演算子
比較演算子は、2つの値を比べて真偽値(true/false)を返します。
条件を満たしていればtrue,そうでない場合はfalseです。
等しくないとする場合は、<>とします。
比較演算子 | 説明 |
---|---|
a = b | aとbの値は等しい |
a <> b | aとbの値は等しくない |
a > b | aはbより大きい |
a >= b | aはbより大きい または 等しい |
a < b | aはbより小さい |
a <= b | aはbより小さい または 等しい |
以下は、Microsoftの比較演算子 (Visual Basic)のリンクです。
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/language-reference/operators/comparison-operators
関連の記事