C#のwhileの使い方!繰り返し(ループ)処理をする!

C# C#

C#のwhile文の使い方について書いています。
while文を使うことで、繰り返し(ループ)処理をすることができます。

記事内のサンプルコードについては、.Netのバージョン6(C#のバージョン10)で確認しました。

whileの使い方

C#のwhile文を使うことで、指定した条件に合う間(trueのとき)、処理をループします。
例えば、下記のように使うことができます。

int count = 0;
while (count < 5) {
    Console.WriteLine($"カウンタ:{count}");
    count++;
}

最初にcount変数に対して、「0」を代入しています。

次の処理で、while文を使っています。
丸括弧「()」に渡しているのが、ループの継続条件になります。

今回は「count < 5」としているので、count変数の値が「0」から「4」までの間、繰り返されます。
ループ処理の中で、count変数の値を出力して、ループの終わりにカウントアップしています。

カウントアップを忘れると、継続条件がずっと変わらずに無限ループになってしまうので気をつけましょう。
プログラムを実行すると、下記のように5回繰り返されたことがわかりました。

カウンタ:0
カウンタ:1
カウンタ:2
カウンタ:3
カウンタ:4

breakを使って途中で抜ける

breakを使うと、whileループの継続条件にあっていても、任意のタイミングで処理を抜けることができます。
例えば、下記のように使えます。

int count = 0;
while (count < 5)
{
    if (count == 2) {
        break;
    }

    Console.WriteLine($"カウンタ:{count}");
    count++;
}

最初にcount変数に対して、数値の「0」を代入しています。

次の処理で、先ほどと同じようにwhile文を使っています。
count変数の値が「0」から「4」までの間、ループして処理をします。

whileの処理の最初で、count変数が「2」だったらbreakを実行しています。
そのため、count変数が「2」になったらループ処理を抜けます。

プログラムを実行すると、下記のようにbreakして、処理を抜けることができました。

カウンタ:0
カウンタ:1

continueを使ってスキップする

continueを使うと、whileループの途中で処理をスキップすることができます。
例えば、下記のようにスキップできます。

int count = 0;
while (count < 5)
{
    if (count == 2 || count == 4)
    {
        count++;
        continue;
    }

    Console.WriteLine($"カウンタ:{count}");
    count++;
}

先ほどと同じように、count変数に対して「0」を代入しています。

そしてwhileのループの最初に、count変数が「2」または「4」だったときには、continueを実行しています。
continueの前にcount変数をカウントアップしていますが、カウントアップ(count++)を忘れると、ずっと同じ値でループして無限ループになります。

whileでcontinueするときには、カウントアップを忘れないように気をつけましょう。
プログラムを実行すると、下記のように出力されました。

カウンタ:0
カウンタ:1
カウンタ:3

count変数が「2」と「4」のときにはスキップできたことが確認できました。

forとwhileの違い

for文は初期値・継続条件・ステップ値を指定しますが、while文は継続する条件だけでした。
また、for文ではループの最後にステップ値が足されていきますが、while文は明示的に足す処理が必要でした。

ループ処理の最後のカウントアップや、continueしたときのカウントアップを忘れたりすると無限ループになります。
このようにバグを作りやすくなるので、基本的にはfor文を使うようにしたほうが良いかと思います。

whileの無限ループについて

while文に指定した条件がずっと合う状態(true)になって、処理を抜けないことを無限ループといいます。
例えば、下記のように条件が変わらないときには、ずっとループから抜けることができません。

int count = 0;

while (count < 5)
{
    Console.WriteLine("カウンタ値が変わらないので無限ループ");
}

ここではcount変数の値が0のまま変わらないため、無限ループになります。

またtrueを条件に指定することで、意図的に無限ループを作ることもできます。

while (true)
{
    Console.WriteLine("これは無限ループ!");
}

whileの使い方についてのまとめ

今回はC#のwhileの使い方について書きました。
記事の内容をまとめると、下記のようになります。

・while文を使うことで、ループ処理をすることができる。
・breakを使うと、whileループの途中で抜けることができた。
・continueを使うと、whileループの途中でスキップすることができた。
・while文ではカウントアップを書いておく必要があった。

コメント

タイトルとURLをコピーしました