- ベストアンサー
ハッシュ関連のスクリプトですが、
こんにちは。以下のスクリプトですが、 -- @array = (1 .. 100); foreach $number (@array) { if ($number % 2 == 0) { $total{'2'}++; } } #result print "2で割り切れる要素数: " , $total{'2'}, "\n"; -- 実行すると、 「2で割り切れる要素数: 50」の結果が出ます。 何となく理解はしていますが、正確に何でそうなのか 分かりません。 ご指導いただけますか? よろしくお願いします。
- みんなの回答 (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 これでどうでしょうか?
その他の回答 (1)
- Sam_A
- ベストアンサー率33% (6/18)
%(剰余)の演算の意味が理解されていないのだと思います。 $number % 2 == 0 の部分は数字($number)を2で除算し余りがゼロであればと言う意味です。よって余りがゼロと言うことは2で割り切れると言うことです。(端数になっていると2で割り切れていない。)
お礼
貴重な時間をいただきまして、どうもありがとうございます。 やはり、もっと基本を勉強しなくてはいけない気がします。 ご指導ありがとうございました。
お礼
参考URLまで丁寧に紹介してくださって、 どうもありがとうございます。 また機会があったら、ご指導ください。