continue文

ループの中で continue 文に出会うと、それ以降の処理を飛ばして次の回のループに移る。この時、for ループではインクリメント部が実行されてループ変数は変更される。

次のプログラムは、ユーザーに整数を複数入力させてその合計を出力する(0 で入力終了)。その際、整数を2回入力させて合致するかを確かめている。もし合致しない場合は入力された数を合計に加算せずに continue で次のループに処理が移る。

#include

int main(void)
{
    int total, i, j;

    total = 0;
    do {
        printf("Input number (0 to exit): ");
        scanf("%d", &i);
        printf("Once more: ");
        scanf("%d", &j);
        if (i != j) {
            printf("Error: Try again.\n");
            continue;
        }
        total = total + i;
    } while (i);

    printf("TOTAL: %d\n", total);

    return 0;
}

実行例:

Input number (0 to exit): 1
Once more: 1
Input number (0 to exit): 5
Once more: 5
Input number (0 to exit): 9
Once more: 9
Input number (0 to exit): 0
Once more: 0
TOTAL: 15

実行例2(わざと間違った例):

takatoh@nightschool $ ./sample_3_8
Input number (0 to exit): 1
Once more: 2
Error: Try again.
Input number (0 to exit): 1
Once more: 1
Input number (0 to exit): 5
Once more: 5
Input number (0 to exit): 0
Once more: 0
TOTAL: 6

最初の入力(1, 2)は合致しないので、合計に加算されていない。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください