continue文と break文 分岐文(ジャンプ文)の内,continue文と break文を見ましょう。
■continue文(continue Statement)
continue ;
continue文は,while文,do文,for文の「繰り返し文」において,繰り返し対象の 文 の末尾にジャンプさせます。goto文を使った右側と同じです。
while(x) while(x)
{ {
// 処理 // 処理
continue; goto cont;
// 処理 // 処理
cont: ;
} }
すなわち,繰り返し処理において,continue 以下を飛ばすこととなります。
■break文(break Statement)
break ;
break文は,while文,do文,for文の「繰り返し文」と switch文において,処理を止めます。すなわち,繰り返し処理から抜けます。
次の例は,2の倍数でないものをスキップし,スキップしなかった数値が3の倍数ならばループから抜けるものです。(すなわち,2と3の倍数であったとき,繰り返し処理から抜けます。)
/* Example 14.11 */
#include <stdio.h>
int main(void)
{
int x[10] = {8, 5, 14, 10, 9, 12, 16, 7, 2, 22};
int flag2 = 0, flag3 = 0;
int *p = NULL;
for (p = x; *p; p++) {
flag2 = *p % 2;
if (flag2)
continue;
printf("x[%td] = %d\n", p - x, *p);
flag3 = *p % 3;
if (!flag3)
break;
}
++p;
printf("Process terminates at the %tdth element.\n", p - x);
return 0;
}
実行結果です。
x[0] = 8 x[2] = 14 x[3] = 10 x[5] = 12 Process terminates at the 6th element.