VB.NETのWhile文について、書いています。
While文の使い方をコード例とともに解説しています。
VB.NETのWhile文の使い方
While文は、条件があっている(True)である間、指定された処理を繰り返し実行するために使用されます。
基本的な構文は次のとおりです。
While [条件]
' 繰り返し実行する処理
End While
条件にあっている間(Trueである限り)、While文の内部の処理が繰り返されます。
条件があわなくなる(Falseになる)と、ループが終了します。
基本的な例
まず、基本的なWhile文の例を見てみましょう。
次のコードは、1から5までの数字を出力します。
Dim counter As Integer = 1
While counter <= 5
Console.WriteLine(counter)
counter += 1
End While
このコードでは、counter
変数が「1」から始まり、While文の内部で毎回1ずつ増加していきます。
次にWhile文を使っています、counter
が5以下である限りループが続きます。
counter
変数の値を出力した後に、「1」ずつカウントアップしています。
counter
変数の値が「5」になるとループを抜けます。
実行結果は次のようになります。
1
2
3
4
5
counter
変数の値が「5」になるまで、処理が繰り返されたことが確認できました。
While文の無限ループに注意
条件が常にあっている(True)の場合、While文は無限ループになります。
無限ループに陥らないように、ループ内で条件を変更する処理を忘れないようにしましょう。
例えば、次のコードは無限ループになります。
Dim counter As Integer = 1
While counter <= 5
Console.WriteLine(counter)
' counterを増やす処理がないため、無限ループになる
End While
無限ループにならないように、counter
を増やす処理を追加が必要です。
このようにWhile文は条件を抜ける定義が必要です。
単純に繰り返し処理するなら、初期値を設定できるForや、配列やリストをループするFor Eachも検討してみて下さい。
処理途中でWhile文を抜けるには?(Exit While)
While文の処理途中でループを終了するには、Exit While
文を使用します。
次の例では、counter
変数が「3」になった時点でループを終了します。
Dim counter As Integer = 1
While counter <= 5
If counter = 3 Then
Exit While
End If
Console.WriteLine(counter)
counter += 1
End While
counter
変数が「5」になるまでの繰り返し条件ですが
counter
変数が「3」のときにExit While
文が実行されて処理を抜けます。
このコードを実行すると、次のようになります。
1
2
counter
変数が「3」になったら処理を抜けることが確認できました。
While文で処理をスキップするには?(Continue While)
While文の処理中に特定の条件で処理をスキップし、次のループに進むにはContinue While
文を使用します。
次の例では、counter
変数が「3」の場合は処理をスキップします。
Dim counter As Integer = 1
While counter <= 5
If counter = 3 Then
counter += 1
Continue While
End If
Console.WriteLine(counter)
counter += 1
End While
こちらもcounter
変数が「5」になるまでの繰り返し条件です。
counter
変数が「3」のときにContinue While
文が実行されて、処理をスキップします。
このコードを実行すると、次のようになります。
1
2
4
5
counter
変数が「3」になったら処理をスキップすることが確認できました。
While文の実用例
下記のプログラムはユーザーが「0」を入力するまで繰り返すプログラムの例を示します。
Dim input As Integer = 1
While input <> 0
Console.Write("数値を入力してください (0入力で終わります): ")
input = Convert.ToInt32(Console.ReadLine())
If input <> 0 Then
Console.WriteLine("入力した数値: " & input)
End If
End While
このプログラムは、ユーザーが「0」を入力するまで数値を入力させ、その数値を出力します。
「0」を入力するとループが終了します。
このように意図的に無限ループをつくるような場面では使用することがあるかと思います。
まとめ
While文は、指定された条件がTrueである間、処理を繰り返すために使用される便利な構文です。
無限ループを避けるための条件設定や、途中でループを抜けるExit While
、処理をスキップするContinue While
など、適切に使用することで効果的なループ処理が可能になります。
条件文などを書くのが簡単で、バグを作りにくいので、基本的にはFor文を使う方がよいかと思います。
また、配列やリストの要素分処理をしたいときにはFor Each文を使っていきましょう。
コメント