« 4.7 スライスと範囲演算子「..」 | トップページ | 「すぐわかるPerl」4.9 エラーメッセージを出して死ぬ「Die」 »

2008年3月21日 (金)

「すぐわかるPerl」4.8 配列を連続アクセスする「foreach」ループ

foreachはwhileやforと同じで、繰り返しを行う制御文

ちょっと復習
while(76p)

while(繰り返し条件){
命令1;
命令2;
}

for(87p)

for(最初に実行する文;ループを継続するか判定する文;ブロックの最後にやる文){
命令1
命令2;
}

平均身長プログラムでforeachを使ってみる

#! c:\perl\bin\perl.exe
# average - 平均身長を求める

@tall=(155.5,160,162.4,173,173.8,180.5,178.2,145.9,155.5,162.8);
foreach $each_tall (@tall){
$sum += $each_tall;
}
$ave = $sum / @tall;
print "average;$ave\n";

この中のforeachに注目

foreach $each_tall (@tall){{
$sum += $each_tall;
}

これは$sumに配列の数(155.5とか160とか)を一個ずつ入れていくための部分。

foreach $each_tall (@tall){
まず、0番目の要素を処理する
$tall[0]=$each_tall

その$each_tallを$sumに加算する。
$sum += $each_tall;

foreachはループなので、今度は1番目の要素を処理
$tall[1]=$each_tall

foreachはこれを要素の数だけ行う。

・・・ってことでいいのだろうか、オレ解釈だが。

で、foreachループを抜けた後に$sum(配列の数の合計が入っている)を@tall(配列の数、つまり10個)で割る。
(@tallは数式の中で扱われる場合にはリストではなくスカラーコンテキストとして扱われる 101p)

|

« 4.7 スライスと範囲演算子「..」 | トップページ | 「すぐわかるPerl」4.9 エラーメッセージを出して死ぬ「Die」 »

Perl」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/214806/40582225

この記事へのトラックバック一覧です: 「すぐわかるPerl」4.8 配列を連続アクセスする「foreach」ループ:

« 4.7 スライスと範囲演算子「..」 | トップページ | 「すぐわかるPerl」4.9 エラーメッセージを出して死ぬ「Die」 »