戻り値とはどういう値なのか簡単な例文で教えて頂けますか?

A 回答 (3件)

バカくさいかもしれませんが簡単な例えをだしてみます。


2人の子供がいて、名前をそれぞれ太郎・花子にしましょう。この2人の子にある役割を決めます。
・花子は飴をもらうと、それをチョコにする役割。(できるかは別として)
・太郎は花子を呼んで飴をあげる役割。

さてこの例では太郎の飴が引数(ひきすう)になり
花子のチョコが戻り値になります。

このイメージを元に次の文を読んでみてください。

「プログラム中の関数やサブルーチンが処理を終了し
呼び出し元に処理の結果として返す値。」

これが戻り値の正しい定義です。
そのほかにはNo1さんのような役割指すときも、それを「戻り値」と呼んだりします。
    • good
    • 18
この回答へのお礼

returnで処理する値のことですね。ありがとうございました。

お礼日時:2005/10/10 12:03

一言で言うと、戻ってくる値(数字だったり、文字だったり)のことなのですが、じゃあ何からどう戻ってくるものなのかが問題ですよね。



例えばy=sin(x)という関数があります。xに30°という値を入れると、yとして0.5という値が戻ってきます。これは戻り値の一種です。

また、すべてを大文字に変換する関数があったとして、名前がCapital()だとします。
Capital(lEdzEpPeliN)とすると、すべてが大文字になった結果(=LEDZEPPELIN)が返ってきますね。これも戻り値のひとつです。


また#1さんがおっしゃるように、関数が正しく処理したのか判定する際にも使われます。正しく処理したときは0か正の数が、エラーの時は-1や負の数が返ってきたりします。


また関数によっては戻り値がないものもあります。
    • good
    • 6
この回答へのお礼

処理後の答えですね。ありがとうございました。

お礼日時:2005/10/10 12:02

戻り値と言うのはプログラムやコマンドなどを動作させた際、そのプログラム&コマンドが正常に動作したかを確認する値のことを言います。



通常、正常ならば0(ゼロ)という値が帰ってきます。
異常の場合はエラーメッセージが出力されます。


cd abc(チェンジディレクトリコマンド)

※正常の場合
0という値が帰ってきてますが、正常の場合はエラーを出さないため目には見えません。

※異常の場合
指定されたパスが見つかりません。
    • good
    • 4
この回答へのお礼

ありがとうございました。

お礼日時:2005/10/10 12:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QHTML→PHP フォームの値の受け渡しができません

PHPをはじめたばかりの初心者です。
ネットでいろいろ調べましたがわからず困っています。
お助けくださいm(_ _)m

<内容>
フォームの入力内容をPHP側で参照できません。
具体的には、
<form method="post" action="test.php">
<select name="BirthDay" size="1">
<option value="1">1月生まれ</option>
<option value="2">2月生まれ</option>
<option value="3">3月生まれ</option>
</select>
<input type="submit" value="決定">
</form>
で飛ばした値を、
print($BirthDay);
で表示させようとしています。
しかし、$BirthDayには何も入ってきません。
ただ、できないのはローカル環境だけで、
実際、他のサーバーにアップしてやると正常に
動作します。
ローカル環境は
Win2000SP4+PHP4.4.1+Apache1.3.34
です。
httpd.confを見直しましたがわかりませんでした。
ぜひアドバイスをお願いしますm(_ _)m

PHPをはじめたばかりの初心者です。
ネットでいろいろ調べましたがわからず困っています。
お助けくださいm(_ _)m

<内容>
フォームの入力内容をPHP側で参照できません。
具体的には、
<form method="post" action="test.php">
<select name="BirthDay" size="1">
<option value="1">1月生まれ</option>
<option value="2">2月生まれ</option>
<option value="3">3月生まれ</option>
</select>
<input type="submit" value="決定">
</form>
で飛ばした値を、
print($BirthDay);
で表示させようと...続きを読む

Aベストアンサー

そういうときは

$_POST[BirthDay] で受け取ります
GETの場合は
$_GET[]です

QPerl 戻り値の型の判定って出来ますか?

Perlは引数でのOUTを返せないと認識してます。
※ここで間違っていたらご指摘下さい。
そのために下記のように、違った型(スカラー変数または配列)を返すように切り替えた場合に呼び側はどのように判定すれば良いのでしょうか?教えて下さい。

$result = sample();

sub sample{

$abc = "abc";
@xyz = qw(x y z);

if(){
return $abc;
}

if(){
return @xyz;
}
return 0;
}

Aベストアンサー

1つの方法としては、
return \$abc;
return \@xyz;
としてリファレンスを返すことです。
そうすれば、
if(ref($result) eq 'ARRAY'){
print @$result;
} else { #SCALAR
print $$result;
}
のように判定できます。

Qhtmlからphpへの値の受け渡しについて

いつも助けてもらってます。
今回も宜しくお願い致します。

現在、複数のhtmlページから一つのphpを呼び出しているのですが、
phpのselect文の中で各ページの持つ定数(変数?)を使用したいと考えています。

phpのselect文
SELECT
*
FROM
ITEM
WHERE
ITEM_DIV = 各ページの定数(文字列)


各ページの定数は、必ず同じ物です(ダイエット、食品etc..)
グーグルなどで調べた結果、
POSTやSESSION、FORMで出来そうな感じだったのですが、

渡すものがいつも決まっていて、かつ一つなので
もっと簡単に渡せるんじゃないかな?と考えて投稿させてもらいました。

宜しくお願いします!!

Aベストアンサー

php側で、どのhtmlからリンクされたかが分かればいいと思いますので、
サーバ環境変数の $_SERVER['HTTP_REFERER'] で可能かと思います。

参考URL:http://lib.stwing.jp/archives/2005/09/php_server.html

Q詳しい方教えて頂けませんでしょうか?

詳しい方教えて頂けませんでしょうか?

Sonyの電子ブックリーダーの日本語化を
下記ブログに従って進めていたのですが・・・
http://pc-parts.cocolog-nifty.com/blog/2010/04/prs-6001-c782.html

最後にフォントを作るバッチ処理を実行させると

'pl2bat' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
'pl2bat' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
'ttfunpack' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
'ttfunpack' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
指定されたパスが見つかりません。
指定されたパスが見つかりません。
'ttfpack' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
フォント生成に成功しました
続行するには何かキーを押してください . . .

と表示され、ファイルの中に存在すると思われる
最終生成物の tt0003m_.ttfというファイルが確認できないのです。
(詳細に言えば、tt0003m_.ttfは存在するのですが
18MB程とブログに記載されているようなサイズにはならないのです)

お忙しいところ恐縮ですが、バッチプログラムの内容がわからないので
教えて頂けませんでしょうか。

このままだと、Sonyの電子ブックリーダーの日本語化が出来ず、
無用の長物になってしまうのです(T_T)

私のPCのOSは win7です。

スイマセンm(_ _)m。宜しくお願い致します。

ちなみに、バッチプログラムの内容ですが以下のとおりです。


@echo off

if not exist "C:\ttftinker\ipagp-mona.ttf" goto ERROR1
if not exist "C:\ttftinker\tt0003m_.ttf" goto ERROR2
goto PROCESS

:ERROR1
echo ipagp-mona.ttfが見つかりません
pause
exit /b

:ERROR2
echo tt0003m.ttfが見つかりません
pause
exit /b

:PROCESS
set Path=%PATH%;C:\ttftinker
set perllib=C:\ttftinker
cd /d C:\ttftinker
call pl2bat ttfunpack
call pl2bat ttfpack
call ttfunpack ipagp-mona.ttf ipag
call ttfunpack tt0003m_.ttf tt0003m_
copy /y tt0003m_\name ipag
cd ipag
call ttfpack 0x00010000 name cvt glyf cmap hmtx post loca maxp head hhea OS_s2 > tt0003m_.ttf
cd ..
echo フォント生成に成功しました
pause

詳しい方教えて頂けませんでしょうか?

Sonyの電子ブックリーダーの日本語化を
下記ブログに従って進めていたのですが・・・
http://pc-parts.cocolog-nifty.com/blog/2010/04/prs-6001-c782.html

最後にフォントを作るバッチ処理を実行させると

'pl2bat' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
'pl2bat' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
'ttfunpack' は、内...続きを読む

Aベストアンサー

Perl をインストールしたディレクトリは PATH に含まれていますか?

Qhtmlファイルからphpファイルへの値の受け渡し

表を使った問い合わせフォームを作成したのですが、データを受け渡す方法がわかりません!!

初めの問い合わせページは以下のようにhtmlファイルで記述しました。

この場合、次のページにデータを引き渡すphpファイルには、どうのような記述をしたら良いのでしょうか?

<form method="post" action="info.php">
<table class="table margin01" width="592" border="0" cellpadding="0" cellspacing="0">

<tr>
<td width="190" align="left" bgcolor="#FFF09D">お名前 <span class="tabletext1">※必須</span></td>
<td><input name="name" type="text" class="form01" id="name" /><br />
入力例:山田 太郎
</td>
</tr>

<tr>
<td align="left" bgcolor="#FFF09D">メールアドレス <span class="tabletext1">※必須</span></td>
<td><input name="mail" type="text" class="form01" id="mail" /><br />
入力例:●●●●●●@yamada.co.jp
</td>
</tr>

<tr>
<td align="left" bgcolor="#FFF09D">メールアドレス(確認) <span class="tabletext1">※必須</span></td>
<td><input name="mail2" type="text" class="form01" id="mail2" /></td>
</tr>

<tr>
<td align="left" bgcolor="#FFF09D">お問い合せ内容 <span class="tabletext1">※必須</span></td>
<td>
<select name="list" id="list">
<option>お問い合せ内容をお選びください</option>
<option>事業内容について</option>
<option>求人について </option>
<option>その他</option>
</select>
</td>
</tr>

<tr>
<td align="left" bgcolor="#FFF09D">内容 <span class="tabletext1">※必須</span></td>
<td><textarea name="content" id="内容" cols="45" rows="5"></textarea></td>
</tr>

</table>

<p align="center" class="margin01">
<input type="reset" value="クリア" />
<input type="submit" value="送信内容を確認する" />
</p>
<input type="hidden" name="test" value="cloud" />
</form>

表を使った問い合わせフォームを作成したのですが、データを受け渡す方法がわかりません!!

初めの問い合わせページは以下のようにhtmlファイルで記述しました。

この場合、次のページにデータを引き渡すphpファイルには、どうのような記述をしたら良いのでしょうか?

<form method="post" action="info.php">
<table class="table margin01" width="592" border="0" cellpadding="0" cellspacing="0">

<tr>
<td width="190" align="left" bgcolor="#FFF09D">お名前 <span class="tabletext1"...続きを読む

Aベストアンサー

ここが参考になりますかね。


http://www.phppro.jp/school/phpschool/vol6/1


postの処理をどう判定するのかどうか書いてあります。

若干異なるのは、質問者さんは次の画面で入力チェックを行いたいと言う事ですが、
参考サイトは遷移前で入力チェックを行っています。
入力するたびに次画面に遷移してエラーであれば戻ると言うのは
あまりよろしくないかと思いますが…。

Qリファレンスをサブルーチンの戻り値にしてもOKですか?


サブルーチン内部で処理した結果を格納した、配列、ハッシュ、スカラーなどのデータを戻り値として利用する必要があります。その場合、どうするのが標準的なやり方でしょうか?


return (配列へのリファレンス, ハッシュへのリファレンス, スカラー);

などとやってしまっても問題はないでしょうか?


下のプログラムを試したところ、予想に反しちゃんと
「31415」と表示されました。

#!/usr/bin/perl -w
sub subroutine{
my @a = (3, 1, 4, 1, 5);
return \@a;
}

my $b = subroutine{};
print @$b;


サブルーチン内部で使用した変数へのリファレンスをサブルーチン
外で使っていいのだろうか?

サブルーチンの処理が終了した時点でサブルーチン内部で使用した
変数はメモリーから消去されるのかと思ったものですから。

Aベストアンサー

サブルーチンの中でmy を使って宣言した変数であれば、
そのリファレンスを返しても問題ありません。
というのはそのような変数は、どこから参照されているかという
数を数えていて、それが0になったときに初めて実体が破棄されるからです。

>my @a = (3, 1, 4, 1, 5);
ここで配列変数を作ってそれが @a なのでこの時点で参照数は1です。

> return \@a;
> }

ここで@aのリファレンスを\で取得してそれを返しているので
+1 して参照数が2になります。
が、すぐにこのサブルーチンが終わるのでそこで-1されます。
結果として、参照数が1の状態でサブルーチンを抜けるので
実体は破棄されずに残り続けることになります。

Cなんかだと関数にローカルな変数のアドレスや参照を返すのは
ご法度ですが、Perlはそうではないということです。
#Cでもstaticであれば返せますけどね。

Perl
http://www.prenavi.net/~myoujin/tech/perl.html
の「ガベージコレクション」のあたりを参照してください。

サブルーチンの中でmy を使って宣言した変数であれば、
そのリファレンスを返しても問題ありません。
というのはそのような変数は、どこから参照されているかという
数を数えていて、それが0になったときに初めて実体が破棄されるからです。

>my @a = (3, 1, 4, 1, 5);
ここで配列変数を作ってそれが @a なのでこの時点で参照数は1です。

> return \@a;
> }

ここで@aのリファレンスを\で取得してそれを返しているので
+1 して参照数が2になります。
が、すぐにこのサブルーチンが終わるのでそこ...続きを読む

QHTML データ受け渡し

HTMLのデータ受け渡しをしたいのですが

例えば

・担当者_HTML

担当者選択
A        ←Aを選択(Aという値を年齢_HTMLに転送)


・年齢_HTML

年齢選択
20代     ←20代を選択(20代という値とBという値を実行ファイルに渡したい)
30代

Aベストアンサー

これだけのデーターだとすると、自作自演。

このような事をしたいと思うということは、この手の事をしていないと、この発想をしない。

とりあえず、候補を挙げておくが。

基本的なところから

http://reference.ascii.jp/html/form

ServerSideScriptを使う。POSTなのかGETなのかがポイント。

次にGETの応用

URL#HTML Object Element Name(ID)

これにイベント属性との組み合わせ。

JavaScriptなどを使った、ClientSideScriptで選択した結果を処理し、最後にFORMで送信。

ASPXやJSPなどを使えば、バインドしたHTMLタグを使える、

やり方は、さまざまあるので、基本的な事をまなんでから、何ができそうだから、何を使ってやる場合。などと、再度質問してください。

QPerlは戻り値で、ハッシュや配列を正しく返さないのでしょうか?

Perlは戻り値で、ハッシュや配列を正しく返さないのでしょうか?
返せるように見えて実際は、歯抜けのデータなど、不安定で使い物になりません。
よって、リファレンスでスカラー値で利用するのが正論でしょうか?

$a = '';
%b = ();
@c = ();

○ return ($a, \$b, \$c);
× retuen ($a, %b, @c);


○ my ($a, $b, $c) = aru_kansuu($hikkey, ('komori'));
× my ($a, %b, @c) = aru_kansuu($hikkey, ('komori'));

Aベストアンサー

結論から言うと、アレイやハッシュはリファレンスで返すほうが良いと思います。

スカラはなんともいえませんがね。


> my ($a, %b, @c) = aru_kansuu($hikkey, ('komori'));
が、ダメな理由ですが、perl は アレイ列とハッシュ列、@a と %a は微妙に関係にあります。データの扱い的に無関係ではないんですわぁ。

perl のバージョンによってはかなり"濃密"(笑) な
関係にありますです。

my( $a , @a ) = &hogege();
my( $a , %a ) = &hogege();
は、問題ないですが
my( @a , %a ) = &hogege();
は、それなりに配慮すべきです。

Q値の受け渡しについて

JavaScriptを使用しa.htmlからb.htmlへ
値の受け渡しについて分らない事があります。

やりたいことはa.html内にある
<a href="b.html">あああ</a>の「あああ」の値を
b.html内にある<INPUT>に入れたいのです。

現在記述しているコードを下記記しますので
何方かご教授お願いします。

■a.html
<html>
<a href="b.html" onclick="this.href=this.href+'?'+encodeURIComponent(this.innerHTML)">あああ</a>
</html>
■b.html
<html>
<script type="text/javascript">
query = decodeURIComponent( location.search.slice(1,1000) );
document.getElementById('in_name').value = query;
</script>
<form>
<INPUT type="text" id="in_name" name="in_name" value="">
</form>
</html>

JavaScriptを使用しa.htmlからb.htmlへ
値の受け渡しについて分らない事があります。

やりたいことはa.html内にある
<a href="b.html">あああ</a>の「あああ」の値を
b.html内にある<INPUT>に入れたいのです。

現在記述しているコードを下記記しますので
何方かご教授お願いします。

■a.html
<html>
<a href="b.html" onclick="this.href=this.href+'?'+encodeURIComponent(this.innerHTML)">あああ</a>
</html>
■b.html
<html>
<script type="text/javascript">
query = decodeURIComponent(...続きを読む

Aベストアンサー

document.getElementById('in_name').value = query;



window.onload=function(){
document.getElementById('in_name').value = query;
}

としてください

QPerlの戻り値について

配列の戻り値が理解できていないのですが、
Perlで正しく動作させるためには
どのように記述したら良いのでしょうか?

戻り値の動作を詳しく書いてある(出来れば図入りで)
本はありますか?

例)

sub a
{
my @a = ('A');
return (@a, "B", 2);
}

my (@a, $b, $c) = &a;

print "a=[@a] b=[$b] c=[$c]\n";


# a=[A] b=[B] c=[2] # これを期待していたが

# a=[A B 2] b=[] c=[] # こちらになる

Aベストアンサー

#1 以下のようにしてご希望の結果が得られます。
#2 サブルーチン内外の @a は別物で、外の @a には戻り値のすべてが入ってしまいます。
#3 本ではないですが・・・過去の質問(リンク先)が参考になります。

# ------- 例1 ----------

use strict;

sub a
{
my @a = ('A','C','D');
return (@a, "B", 2);
}

my @a = &a;
my $c = pop(@a);
my $b = pop(@a);

print "a=[@a] b=[$b] c=[$c]\n";

# ------- 例2 ----------

use strict;

sub a
{
my @a = ('A','C','D');
return (\@a, "B", 2);
}

my ($a, $b, $c)=&a;
my $n=@{$a}-1;

print "a=[@{$a}[0..$n]] b=[$b] c=[$c]\n";

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=1958086

#1 以下のようにしてご希望の結果が得られます。
#2 サブルーチン内外の @a は別物で、外の @a には戻り値のすべてが入ってしまいます。
#3 本ではないですが・・・過去の質問(リンク先)が参考になります。

# ------- 例1 ----------

use strict;

sub a
{
my @a = ('A','C','D');
return (@a, "B", 2);
}

my @a = &a;
my $c = pop(@a);
my $b = pop(@a);

print "a=[@a] b=[$b] c=[$c]\n";

# ------- 例2 ----------

use strict;

sub a
{
my @a = ('A','C','D');
return (\...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報