C#の制御文 - ループ制御(while文)

プログラムでは同じような処理を何度も繰り返したいケースがあります。
このような場合には、キーワード(予約語)である while を使う事で繰り返し処理をさせる事ができます。



While文

繰り返し処理を行う while 文は以下のように記述します。
while (条件式)
{
    //条件に合致する間、このブロックを繰り返し実行します
}
キーワード while に続いてカッコで囲まれた条件式が書かれます。
while の後のブロックは条件が true と評価される間、繰り返し実行されます。
※条件式を間違うと永久に処理が繰り返されてしまい先に進まなくなるので注意しましょう

while文の例

class Program
{
    static void Main()
    {
        int[] a;
        int index;

        a = new int[10];
        index = 0;
        while (10 > index)
        {
            a[index] = 1;
            index = index + 1;
        }
    }
}
この例では配列の全要素に1を格納しています。
indexは始め0にセットされ、0から9まで while ブロックを繰り返し実行します。
繰り返し処理の中で index がカウントアップされている事に注目してください。



do ... while文

繰り返し処理は do と while を使う方法もあります。
do
{
    //条件に合致する間、このブロックを繰り返し実行します
} while (条件式);
キーワード do で始まります。
do の後のブロックが繰り返し実行されます。
ブロックの後に while が書かれます。

while から始まる場合、始めに条件式の判断が行われるのでブロックの実行回数は0回以上です。
do から始まる場合、後で条件式の判断が行われるのでブロックの実行回数は1回以上になります。

do...while文の例

class Program
{
    static void Main()
    {
        int[] a;
        int index;

        a = new int[10];
        index = 0;
        do
        {
            a[index] = 1;
            index = index + 1;
        } while (10 > index);
    }
}



その他のループ制御

ループを作り出す制御には while文の他に for文や foreach文があります。
while文では、条件式のみを指定するので自由度が高く様々なケースで利用できます。
for文は、カウンター用の変数を同時に定義できるので、回数が決まっている処理などに便利な構文です。
foreach文は、配列の各要素を処理する場合に便利な構文になっています。

また、ループ内の処理の流れを制御する break や continue があります。
break を使えばループを抜ける事が出来ます。
continue を使えばループの先頭へ戻す事が出来ます。




コメント