11.3 Returning from a Function

Last-modified: 2025-03-22 (土) 21:22:19

11.3 関数からの戻り

ユーザー定義関数の本体にはreturnステートメントを含めることができます。このステートメントは、Octave プログラムの残りの部分に制御を戻します。次のようになります。

return

C のステートメントとは異なりreturn、Octave のreturn ステートメントは関数から値を返すために使用できません。代わりに、functionステートメントの一部である戻り変数のリストに値を割り当てる必要があります。returnステートメントは、深くネストされたループまたは条件ステートメントから関数を終了しやすくするだけです。

以下は、ベクトルの要素がゼロ以外であるかどうかを確認する関数の例です。

function retval = any_nonzero (v)
 retval = 0;
 for i = 1:length (v)
   if (v (i) != 0)
     retval = 1;
     return;
   endif
 endfor
 printf ("no nonzero elements found\n");
endfunction

この関数は、 breakベクトルにゼロ以外の要素が含まれている場合にメッセージの出力を回避するための追加ロジックを追加せずに、ゼロ以外の値が見つかったらループを終了するステートメントを使用して記述することはできなかったことに注意してください。

:return

returnOctave は関数またはスクリプト内でキーワードを検出すると、すぐに呼び出し元に制御を返します。最上位レベルでは、return ステートメントは無視されます。returnすべての関数定義の最後にステートメントがあると想定されます。