continue ステートメント

continue ステートメント を使用すると、 進行中のループの反復を終了することができます。 プログラム制御は、continue ステートメントからループ本体の終わりに渡されます。

continue ステートメントの形式は、次のとおりです。

>>-continue--;-------------------------------------------------><
 
 

continue ステートメントは、dofor または while の ような反復ステートメントの本体の中にしか含めることができません。

continue ステートメントは、反復ステートメントのアクション部分 の処理を終了し、制御をステートメントのループ連結部分へ移します。 例えば、反復するステートメントが for ステートメントである場合、 制御は、ステートメントの条件部分の 3 番目の式に移動します。 次に、ステートメントの条件部分の 2 番目の式 (テスト) に移動します。

ネストされたステートメントの中では、continue ステートメントは、 直接に continue ステートメントを囲んでいる dofor、 または while ステートメントの現行の反復だけを終了します。

continue ステートメントの例

以下の例は、for ステートメントに おける continue ステートメントを示しています。continue ステートメントを使用すると、値が 1 以下 の配列 rates のエレメントに対する処理がスキップされます。

/**
 ** This example shows a continue statement in a for statement.
 **/
 
#include <stdio.h>
#define  SIZE  5
 
int main(void)
{
   int i;
   static float rates[SIZE] = { 1.45, 0.05, 1.88, 2.00, 0.75 };
 
   printf("Rates over 1.00¥n");
   for (i = 0; i < SIZE; i++)
   {
      if (rates[i] <= 1.00)  /*  skip rates <= 1.00  */
         continue;
      printf("rate = %.2f¥n", rates[i]);
   }
 
   return(0);
}

プログラムは、以下の出力を作成します。

Rates over 1.00
rate = 1.45
rate = 1.88
rate = 2.00

以下の例は、ネストされたループに おける continue ステートメントを示しています。内部ループが配列 strings の中である数に 遭遇すると、そのループの反復は終了します。処理は、内部ループの 3 番目の 式から続けられます。内部ループは、'¥0' エスケープ・シーケンスを 検出した時点で終了します。

/**
 ** This program counts the characters in strings that are part
 ** of an array of pointers to characters.  The count excludes
 ** the digits 0 through 9.
 **/
 
#include <stdio.h>
#define  SIZE  3
 
int main(void)
{
   static char *strings[SIZE] = { "ab", "c5d", "e5" };
   int i;
   int letter_count = 0;
   char *pointer;
   for (i = 0; i < SIZE; i++)             /* for each string   */
                                           /* for each each character */
      for (pointer = strings[i]; *pointer != '¥0';
      ++pointer)
      {                                  /* if a number      */
         if (*pointer >= '0' && *pointer <= '9')
            continue;
         letter_count++;
      }
   printf("letter count = %d¥n", letter_count);
 
   return(0);
}

プログラムは、以下の出力を作成します。

letter count = 5

関連参照

IBM Copyright 2003