return ステートメント

return ステートメント は、現行の関数の処理を 終了して、関数の呼び出し元に制御を戻します。

return ステートメントの形式は、次の 2 つのうちいずれかです。

>>-return--+------------+--;-----------------------------------><
           '-expression-'
 
 

値を戻す関数には、return ステートメントに が含まれている必要があります。戻りの型が void である関数は、その return ステートメントに を含めることはできません。

戻りの型が void の関数には、return ステートメントは不要です。return ステートメントを検出することなく関数の終わりに達すると、あたかも式のない return ステートメントが検出されたかのように、制御は呼び出し元に渡されます。 つまり、暗黙の戻りが最後のステートメントの完了直後に発生し、制御が自動的に 呼び出し側の関数に戻ります。1 つの関数に、複数の return ステートメントを含めることができます。次に例を示します。

void copy( int *a, int *b, int c)
{
   /* Copy array a into b, assuming both arrays are the same size */
 
   if (!a || !b)       /* if either pointer is 0, return */
      return;
 
   if (a == b)         /* if both parameters refer */
      return;          /*    to same array, return */
 
   if (c == 0)         /* nothing to copy */
      return;
 
   for (int i = 0; i < c; ++i;) /* do the copying */
      b[i] = a[1];
                       /* implicit return */
}

この例では、return ステートメントは、break ステートメントのように、 関数を途中で終了するために使用されています。

return ステートメントに現れる式は、このステートメントが現れる関数の戻りの型 に変換されます。暗黙の変換ができない場合、return ステートメントは無効になります。

関連参照

IBM Copyright 2003