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.