break文

 C言語での繰り返し処理について解説してきました。ここまで、for文、while文、do-while文を扱いました。繰り返し処理の書き方については、この3つで以上です。

 さて、以前、while文で以下のように書くと無限ループが発生するとお話しました。

    while(1) {
        // 何らかの処理を行う
        
    }

 条件式がずっと1(真)なので、永久的にループが回るというものです。ゲーム系のプログラムでよく用いられる無限ループですが、無限ループの中で何らかの条件が発生するとループを抜けるようにしなければ、ずっとプログラムが起動したままになってしまいます。そこで、ループを抜けるために使われるのが、switch文でも用いたbreak文です。

 以下のプログラムを書いて実行し、確認してみて下さい。while文やdo-while文でお見せしたプログラムを書き直したものとなります。

#include <stdio.h>

int main(int argc, const char * argv[])
{
    
    // insert code here...
    int i = 0;
    int array[5];
    array[0] = 2;
    array[1] = 5;
    array[2] = 9;
    array[3] = 0;
    array[4] = 13;
    
    while(1) {
        if(array[i] < 1) {
            break;
        } else {
            printf("%d\n", array[i]);
        }
        i++;
    }
    
    return 0;
}

 このプログラムも結果は以下のように表示されます。

2
5
9

 ある条件のときに処理を抜けたいのですから、if文を用いて条件式を指定します。今回の場合は、配列の要素の中身が1より小さい場合です。その条件を満たしたらbreak文で抜けるようにしています。このようにして無限ループから抜ける事が出来ます。

 さて、ループを抜ける方法はご紹介しました。場合によっては、ループを抜けるのではなく、ある条件の場合だけ(条件式より下の)処理をしないでループの最初に戻って処理を続けたいという場合もあるでしょう。次回は、その方法についてお伝えします。

■スポンサーリンク

このページの先頭へ