continue文

 前回は、while文の無限ループから抜ける場合の方法としてbreak文をご紹介しました。今回はもう一つ、抜けるのではなくて戻る場合についてご紹介します。

 前回のプログラムは、以下のとおりです。

#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;
}

 この場合、array[3]が0のため、i = 3のときに「array[i] < 1」の条件を満たして、if文の中のbreak文によって繰り返し処理が終わります。そうではなく、例えば、配列の要素の中が正の数のときにprintf文を実行したい、つまり、array[4]もprintf文で表示したいとします。その場合、break文だと繰り返し処理が終了してしまうので、代わりにcontinue文を使います。

 以下のプログラムを書いて実行し、確認してみて下さい。if文の中にif文が入るような、やや複雑なプログラムになっていますが、何をしているのかをよく見て頂けると、力がつくと思います。

#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) {
        // 配列の要素の中身が0以下であればprintg文の処理をスキップ
        if(array[i] < 1) {
            i++;
            continue;
        } else {
            printf("%d\n", array[i]);
            i++;
            
            // 配列の最後の要素でループを抜ける
            if(i > 4) {
                break;
            }
        }
    }
    
    return 0;
}

 array[4]の中身の13も表示されることを確認して下さい。

2
5
9
13

 このようにcontinue文を使うことで、単に処理をスキップしてループの最初に戻って、処理を再開させることが可能になります。

■スポンサーリンク

このページの先頭へ