C# while と do while 繰り返し処理

C#における繰り返し処理について様々なパターンがあるので、紹介していきます。
for文は以前紹介したので、今回はwhile文の処理を見ていきましょう。

while文 使い方

while文の書き方は、このようになります。
条件を満たしてる間、繰り返し処理を行います。

while(条件文)
{
    処理
}

 

それでは例を見てみましょう。

int a = 0;

while (a < 3)
{
    Console.WriteLine(a);
    a = a + 1;
}
結果
0
1
2

解説
1行目;変数aを宣言
3行目:aの値が3より小さい時はループする
5行目:aの値を出力
6行目:aの値をカウントアップする。

このように、aの値を1ずつ増やしていき、3より小さい間ループされるので、結果は、0,1,2となります。
a=3になったとき、条件を満たさなくなるのでループを終了します。

6行目のカウントアップを書き忘れると、無限ループになりますので、気を付けましょう!

 

while文は条件文をtrueにすることで無限にループさせることができます。
whileの条件を満たしている間は処理を永遠と繰り返します。
あまり使うことはないと思いますが、使用する時は気を付けてくださいね。

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

 

continue 次ループへ

while文でもfor文と同じようにcontinueを使用することができます。
continueとは、次のループへ処理を飛ばすことができます。

int a = 0;

while (a < 3)
{
    if (a == 1)
    {
        a = a + 1;
        continue;
    }
    Console.WriteLine(a);
    a = a + 1;
}
結果
0
2

解説
a = 1時に、continueの処理を行うようにしています。continueを通ると次のループに行きますので、結果に1が記載されていません。

 

break ループ終了

次にbreak処理を紹介します。
こちらもfor文の時に紹介しましたが、breakをすることでループ処理を強制終了することができます。

int a = 0;

while (a < 3)
{
    if (a == 1)
    {
        break;
    }
    Console.WriteLine(a);
    a = a + 1;
}
結果
0

解説
a = 1 の時にbreak処理を行うので、0のみが結果として表示されています。

 

do ~ while

最後にdo ~ while文を紹介していきます。

int a = 0;

do
{
    Console.WriteLine(a);
    a = a + 1;
}
while (a < 3);
結果
0
1
2

 

while文とほとんど同じなのですが、違うのはループの判定が最後に行われるので、必ず1回は処理を行う点です。

int a = 0;

do
{
    Console.WriteLine(a);
    a = a + 1;
}
while (a < 0);
結果
0

こちらは、a<0なのでもともと条件を満たしていませんが、最初の1回は必ず処理を行うため結果は0が表示されています。

 

まとめ

for文とwhile文には下記のような違いがあるので、状況によって使い分けてください。
for文は、繰り返しの回数がわかっている時に使います。
while文は、繰り返し回数がわかっていない時でも、条件で繰り返し処理を行うことができます。

この違いを理解しておき、状況に応じて使い分けていきましょう。

 

C#の記事一覧

おすすめの記事