SSブログ

return はこれで合ってるのか……? [基礎編]


★ 何か漠然とだけど、タイムカプセルゲームを作りたいと思ったことがあります。
時代ごとのアイテムを集めて入れて、次の時代で開けてく、みたいな……。
文書や音声、メッセージ、ビデオレターなんかを入れて……。
期限まで開けないオンラインタイムカプセルもいいかも(^^)


return文というのをやります。
サブルーチンとか、eval関数とかから指定する値を返すためのもの。

ブロックの最後で呼び出し元に戻るサブルーチンだけど、
return を使えば任意の位置ですぐに呼び出し元に返すことができるんですって。

基本の形はこちら↓

return(戻り値)

引数が省略されると、呼び出し元が値を求めてれば undef(未定義値)、
リストを求めてれば空のリストが戻り値として設定されるのかな……?

ちなみにサブルーチンや eval関数で return を使わないときは
最後に評価した値が返ってきます。

こんなコードを試してみました↓

#!/xampp/perl/bin/perl.exe
print"Content-Type: text/html\n\n";

$text = &porf(85,75);
print "$text";

sub porf
{
($math, $english) = @_;
if($math < 80)
{
return "fail";
}
if($english < 80)
{
return "fail";
}
return "pass";
}

結果はこちら↓

fail

納得するために少し修整を加えました↓

#!/xampp/perl/bin/perl.exe
print"Content-Type: text/html\n\n";

$text = &porf(75,85);
print "$text";

sub porf
{
($math, $english) = @_;
if($math < 80)
{
return "fail";
}
if($english < 80)
{
return "fail";
}
return "pass";
}

数学と英語の点数(85点と75点)を入れ替えたのです。
でも fail のままだ~(>_<)

というか、どちらかが80点以下であれば、赤点ってことなのか?
と思って、どちらも85にしたら pass になりました。

return は分かったと思うんだけど、
サブルーチンが分かってないのかも。

っていうか、考えたらサブルーチンって今までサラッとしか触れたことないから、
次はサブルーチンですね(^_^;)

ところで eval関数の場合はどう使うんだろ……?
それはまた今度にします。


<お知らせ>----------------------------------------------------------------

tukuruuru.jpg

【作る+売る】プログラマー学校

----------------------------------------------------------------<お知らせ>



こちらのページで勉強させていただきました↓
return文 - サブルーチン - Perl入門
return | Smart-Web Magazine
ありがとうございました<(_ _)>




nice!(0)  コメント(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。