法大奥山研究室

 previous  contents

14.9. 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.

 previous  contents