Perlを勉強し始めました。
いままでプログラミングを組むことがなかったので、全くの素人
なんですが、いきなり壁に当たりました。
変数のところを勉強してるんですが、
$a=1;
$a +=2;
print $a
みたいな感じで書かれてるのをみて、ふと疑問が。
$aに1を代入する。
$aに、$a+2を代入して、$aを表示ってことですよね。
$b +=2;にして、print $bにしないで、なんで
$aに、$a+2を代入するんでしょうか??
$aは、すでに1を代入していて、$aは『1』としてるわけじゃないですか。
その$aに、また$a+2を代入するという発想がさっぱり理解できません。
普通に、$bにすればいいじゃん、その方がすっきりするじゃん、って思うんですが、なんでこんな記述方法にするのかわかりやすく教えていただけたら助かります。
No.2ベストアンサー
- 回答日時:
すみません。
質問の意図を読み間違えていました。$a+=2;
という式において、
$a=1;
と既に値を入れている$aでこの計算をしなくても、
$b+=2;
とすれば$aの初期値も残せてスッキリするということをおっしゃりたいのですね。
おっしゃる通りです。
でもメモリーがもったいないので、$aの初期値を後々使わない場合は上書きするのが良いとされています。
もっともメモリーの節約のためとはいえ、やみくもに同じ変数を使いまわしすると、後でプログラムを読み返した時にその変数が何を意味しているのか分からなくなります。
ですから状況に応じて
$a=1;
$a+=2;
とやったり、
$a=1;
$b=1;
$b+=2;
とやったりします。
No.1
- 回答日時:
$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回かもしれません。それでは
の後にどの変数を指定すればいいのでしょう。
$a+=2;
という風に、常に$aを使っているからこそ、
print $a;
と簡潔に記述できるわけです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
pythonにCでのexternはありますか
-
変数について
-
エクセルシート名の制限を変更...
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
COBOLのCOMP形式について
-
Excel 1セル当りの文字数が2...
-
【VB2005】テキストボックス内...
-
バイト列とバイナリ列の違いが...
-
CreateProcessでの環境変数の設...
-
matlabのソースコードをpython...
-
COleDateTime とtime_t
-
Excel VBA メール作成について ...
-
char str[256]の256の意味は?
-
PHPのCookieが有るか無いかで、...
-
Javaで日本語1文字のバイト数
-
日本語で関数名等を記述するの...
-
CGI(Perl)の文字化けについて
-
1KBが1024byteな理由
-
DataGridViewの特定列に入力さ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
pythonにCでのexternはありますか
-
チェックボックスのvalue値の取...
-
格子運動の連立同次方程式
-
Perlで変数中のエスケープされ...
-
CSVから構造体へ代入
-
UWSCにおける変数の扱い方
-
VB2010での連立方程式の計算
-
@color1 = ('0000ae',・・・,'$...
-
この&は
-
高校数学のベーシック
-
perlのプログラミングについて
-
最大値の出し方
-
マクロの書き換え箇所がわかり...
-
【Perl】特定文字列の抽出方法...
-
配列へのポインタの代入
-
はじめての動画像処理
-
c言語、マクロについて
-
なぜかわかりませんscanf()の戻...
-
変数内の文字の数
-
UTF-8で5~6バイトになる文字コ...
おすすめ情報