Return文
出典: フリー百科事典『ウィキペディア(Wikipedia)』
return文(リターンぶん)とは、プログラミング言語における、文の一つである。サブルーチンからの復帰に使われ、復帰と同時に値を返すことができる。その値は戻り値(もどりち)と呼ばれる。
目次 |
[編集] 言語別の意味や構文
[編集] C言語
C言語に於いて、return文とは、関数を実行した結果や、その処理が成功したかどうか等を示すデータを、呼び出し元に渡すと共に、その関数を終了させるはたらきを持つ文である。return文によって、関数の呼び出し元にデータを渡す事を、値を返すと云う。
return文によって返される値の形式(整数や文字、配列やポインタに構造体等)は、関数の定義時やプロトタイプ宣言時に定義する。例えば、
int main(void)
という宣言は、int型の値を返す事になる。
return文は、以下の様に書く。
[編集] 構文1
return;
[編集] 構文2
return 値;
関数の戻り値がvoid(値を返さない)と定義されている場合は、構文1を用い、それ以外の場合は、構文2を用いる。関数の最後にある場合、構文1は省略可能。
[編集] Java
Javaに於いて、return文とは、実行しているメソッドから抜け出すための文である。値を返してメソッドから抜け出す場合には、そのメソッドに適切な戻り値を設定しなければならない。
[編集] 構文1
return;
[編集] 構文2
return 値;
メソッドの戻り値が無い(値を返さない)場合は、構文1を用い、返す場合は、構文2を用いる。構文1は、省略可能。
[編集] BASIC
BASICに於いて、return文とは、gosubによって飛んだサブルーチンから、元のメインルーチンへと戻る命令である。gosub元の行番号、もしくは構文の位置を記憶しておき、returnと書かれた個所までプログラムの進行が辿り着くと、記憶していた次の命令、もしくは行番号を読み、実行を続けてゆく。
[編集] 構文1
return
10 a=1:gosub 100 20 a=2:gosub 100 30 a=3:gosub 100 40 a=4:gosub 100 50 end 100 'サブルーチン 110 print a 120 return
上のプログラムリストの場合、行番号100から120がサブルーチンになり、行番号10~40はそれぞれサブルーチンへと飛び、行番号120から再びメインルーチンへと帰還する流れをとる。
また、BASICによってはreturn文に行番号を添えることで、メインルーチンへの帰還を行わずにプログラムを走らせることが可能なものもある。
[編集] 構文2
return 行番号
10 a=1:gosub 100 20 a=2:gosub 100 30 a=3:gosub 100 40 a=4:gosub 100 50 end 100 'サブルーチン 110 print a 120 if a<3 then return 130 if a>=3 then return 150 150 'サブルーチンからの離脱 160 print "end" 170 end
上の例ではaの値として3が代入された行番号30からのサブルーチンへのジャンプ以降は、行番号130のreturn 150によってルーチンから解放され、行番号150へと飛ぶ。既にreturnを経ているため、仮にこの後にreturn文があっても行番号40に戻ることは二度と無く、エラーを返すこととなる。
また、多くのBASICではgosub~returnはネストを作ることが可能であり、サブルーチンから更に別のサブルーチンへと飛ばせる。この場合、returnも二重に扱えることとなる。
殆どのBASICでは自らのルーチンへと飛ぶことも可能であるため、サブルーチンのネストはバグを生む原因にもなりえるので注意が必要である。