• ベストアンサー

ハッシュ関連のスクリプトですが、

こんにちは。以下のスクリプトですが、 -- @array = (1 .. 100); foreach $number (@array) { if ($number % 2 == 0) { $total{'2'}++; } } #result print "2で割り切れる要素数: " , $total{'2'}, "\n"; -- 実行すると、 「2で割り切れる要素数: 50」の結果が出ます。 何となく理解はしていますが、正確に何でそうなのか 分かりません。 ご指導いただけますか? よろしくお願いします。

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

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

4点説明します。 @array = (1 .. 100); 1,2,3~100の要素をもった配列@arrayを定義します。 http://www.pals-net.co.jp/a/perl3.html#1 foreach $number (@array) @arrayから1つずつ取り出して変数@numberに入れます。 http://www.pals-net.co.jp/a/perl4.html#5 if ($number % 2 == 0) 2で割り切れる場合は、 http://tohoho.wakusei.ne.jp/wwwperl1.htm#CalcOperand $total{'2'}++; 連想配列 $total{'2'}の値に+1します http://tohoho.wakusei.ne.jp/wwwperl1.htm#Rensou これでどうでしょうか?

cgi_syoho
質問者

お礼

参考URLまで丁寧に紹介してくださって、 どうもありがとうございます。 また機会があったら、ご指導ください。

その他の回答 (1)

  • Sam_A
  • ベストアンサー率33% (6/18)
回答No.1

%(剰余)の演算の意味が理解されていないのだと思います。 $number % 2 == 0 の部分は数字($number)を2で除算し余りがゼロであればと言う意味です。よって余りがゼロと言うことは2で割り切れると言うことです。(端数になっていると2で割り切れていない。)

cgi_syoho
質問者

お礼

貴重な時間をいただきまして、どうもありがとうございます。 やはり、もっと基本を勉強しなくてはいけない気がします。 ご指導ありがとうございました。

関連するQ&A