[C# 入門] 反復処理(while)について

whileを使った反復処理についてです。同じ反復処理にforもありますが、2つの違いはforは繰り返す回数を指定するのに対し、whileは条件を指定して条件を満たす間処理を繰り返します

for文については、[C# プログラミング入門] 反復処理(for文)についてを見てください。

スポンサーリンク

while文の使い方

whileの構文はこんな感じです。

while(条件式)
{
    // ここに繰り返し行う処理を書く
}

条件式には結果がboolean型(true または false)になるようにします。
そして、条件式の結果がtrueの間、{ } ブロック内の処理を繰り返し実行します。
{ } ブロック内の処理を繰り返すたびに条件式の判定が行われます。

whileは繰り返す回数がわからない場合に使われます。
下のサンプルは1~100までのランダムな数値が10になるまで処理を繰り返しています。
ランダムなので処理を実行するたびに繰り返しの回数が変わります。
whileは0回以上の繰り返しです、たとえば8行目の段階でrand_valueに10が代入されると繰り返し処理(13~15行目)は実行されません。

using System;
class Program
{
    public static void Main()
    {
        // 1~100までのランダムな数値を取得する
        var rand = new Random();
        var rand_value = rand.Next(1, 100);

        // ランダムな数値が10になるまで処理を繰り返す
        while (rand_value != 10) 
        {
            Console.WriteLine($"rand_value={rand_value}");
            // 次のランダムな数値を設定
            rand_value = rand.Next(1, 100);
        }
    }
}

条件式に true を指定すると、無限ループになります。
この場合、breakキーワードを使ってループを抜ける必要があります。

スポンサーリンク

whileの途中でループを抜ける(break)

breakキーワードを使うとwhileの繰り返し処理の途中で抜けることができます。

using System;
class Program
{
    public static void Main()
    {
        // 1~100までのランダムな数値を作る
        var rand = new Random();

        // ただただ繰り返す
        while (true) 
        {
            var rand_value = rand.Next(0, 100);
            Console.WriteLine($"rand_value={rand_value}");

            // 10だったら繰り返し終了
            if (rand_value == 10) {
                Console.WriteLine("繰り返し終了");
                break;
            }
        }
    }
}
スポンサーリンク

繰り返し処理の途中で繰り返しの先頭に戻る(continue)

continueキーワードを使うと { } ブロック内の処理の途中で先頭(繰り返しの条件判定)まで処理を戻すことができます。

using System;
class Program
{
    public static void Main()
    {
        // 1~100までのランダムな数値を作る
        var rand = new Random();

        // ただただ繰り返す
        while (true)
        {
            // 1~100までのランダムな数値を設定
            var rand_value = rand.Next(0, 100);
            // 数値を表示
            Console.WriteLine($"rand_value={rand_value}");

            // continueで処理を先頭に戻す
            if (rand_value != 10) continue;

            // 繰り返し終了
            break;
        }
    }
}

C# プログラミング講座に戻る

コメント

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