処理のスキップを行います。
for、while、do〜while のループの中で処理をスキップさせるために用いる。
通常 if文と併用され、ループ処理の中で、ある条件が成立する場合、それ以下の処理を行わずにスキップする。
(例)
int i = 1, n, sum;
sum = 0;
while (i <= 10) { …とりあえず 10回ループ
scanf("%d", &n);
if (n < 0) …入力データが負なら
continue; 以下の処理をスキップする
sum = sum + n;
i++;
}
printf("sum = %d\n", sum);
|
|
【continue文をwhile文とfor文の中で使った場合の違い】
実はcontinue文をwhile文の中で用いた場合とfor文の中で用いた場合とでは、スキップの動きが異なります。
下の例に見られるように、while文ではcontinueで「i++;」が実行されないため、負数を入れる限り処理がスキップされます。
ですが、for文ではcontinueでも「i++;」が実行されるため、スキップは5回のみになります。
(while文で用いたcontinue文)
#include <stdio.h>
int main(void)
{
int i = 1, n, sum;
sum = 0;
while (i <= 5) {
printf("正の整数を入力 : ");
scanf("%d", &n);
if (n < 0)
continue;
sum = sum + n;
i++;
}
printf("sum = %d\n", sum);
return 0;
}
|
(for文で用いたcontinue文)
#include <stdio.h>
int main(void)
{
int i, n, sum;
sum = 0;
for (i = 1; i <= 5; i++) {
printf("正の整数を入力 : ");
scanf("%d", &n);
if (n < 0)
continue;
sum = sum + n;
}
printf("sum = %d\n", sum);
return 0;
}
|
(フローチャート)
|
(フローチャート)
|
(実行結果)正の整数を入力してください : -1 正の整数を入力してください : -1 正の整数を入力してください : -1 正の整数を入力してください : -1 正の整数を入力してください : -1 正の整数を入力してください : -1 正の整数を入力してください : -1 : : (何度-1を入力してもスキップするため終了しない) ※ 緑字はキーボードからの入力 |
(実行結果)正の整数を入力してください : -1 正の整数を入力してください : -1 正の整数を入力してください : -1 正の整数を入力してください : -1 正の整数を入力してください : -1 sum = 0 (i++; が実行されスキップは5回のみ) ※ 緑字はキーボードからの入力 |
「初心者のためのポイント学習C言語」 Copyright(c) 2000-2004 TOMOJI All Rights Reserved