• ベストアンサー

perlの「until」ループ文

こんにちは。以下のループ文ですが、 --- print "初期値を入力してください:\n"; $number = <STDIN>; chomp($number); until ($number > 16) { print "数値:$number\n"; $number += $number; } --- 実行画面で「2」を入力すると、 数値:2 数値:4 数値:8 数値:16 のように出力されます。 なぜでしょうか?2,3,4....16じゃないの? どなたか、教えてください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.1

$number += $number; は $number = $number+$number;  ですから 1回目 2 2回目 2+2=4 3回目 4+4=8 4回目 8+8=16 でいいんじゃないでしょうか。 ひょっとして、$number++; と混同していませんか?

cgi_syoho
質問者

お礼

どうもありがとうございます。 >ひょっとして、$number++; と混同していませんか? →おっしゃる通りです。インクリメントと混同していました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • mneko
  • ベストアンサー率33% (46/139)
回答No.2

$number += $number此処で2,4,8になってしまいます 上の式は $number = $number + $number という意味で、$number 内のデータに $number を 加算しています。

cgi_syoho
質問者

お礼

ご指導いただき、どうもありがとうございます。 良く分かりました。

すると、全ての回答が全文表示されます。

関連するQ&A