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.