- ベストアンサー
変数の使い方についての疑問
- Perlを勉強中の初心者が変数の使い方について疑問を持っています。
- 特に、変数に値を代入する際に、既に値が入っている変数に再度値を代入する必要性について理解できません。
- なぜ、変数に既に存在する値を加算した結果を再度その変数に代入する必要があるのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
すみません。質問の意図を読み間違えていました。 $a+=2; という式において、 $a=1; と既に値を入れている$aでこの計算をしなくても、 $b+=2; とすれば$aの初期値も残せてスッキリするということをおっしゃりたいのですね。 おっしゃる通りです。 でもメモリーがもったいないので、$aの初期値を後々使わない場合は上書きするのが良いとされています。 もっともメモリーの節約のためとはいえ、やみくもに同じ変数を使いまわしすると、後でプログラムを読み返した時にその変数が何を意味しているのか分からなくなります。 ですから状況に応じて $a=1; $a+=2; とやったり、 $a=1; $b=1; $b+=2; とやったりします。
その他の回答 (2)
- Tacosan
- ベストアンサー率23% (3656/15482)
意味がよくわからないんだけど, そう思う人は ML みたいな関数型言語がいいかもしれない.
- makoji
- ベストアンサー率25% (1/4)
$a=0; for($i=0;$i<$x;$i++) { $a+=2; } print $a; というコードを考えてみます。 初期値が0である$aに $a+=2; を$x回行って、その結果を表示するものです。 $a+=2; を $b=$a+2; と記述した場合、最初のループで $b=$a+2; ですから、2回目のループでは $c=$b+2; とでも書くべきでしょうか。以後 $d=$e+2; $e=$f+2; という風に、ループする回数分だけ式を書かなくてはならなくなります。 コードがそれだけ冗長になるのも嫌ですが、ループする回数がプログラミングの時点で分かっているならともかく、例出のコードでは$xという変数です。$xは5回かもしれないし、10回かもしれません。それでは print の後にどの変数を指定すればいいのでしょう。 $a+=2; という風に、常に$aを使っているからこそ、 print $a; と簡潔に記述できるわけです。
お礼
メモリの節約のためだったんですか。 なるほど。 ありがとうございました。