人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Perlの質問です。foreachについてですが、

foreach ( @count ){
実行文
}

実行文を実行している時に、現在、何回目のループか?を調べるときはどうすればいいでしょうか?

よろしくお願いします。

●質問者: zachouR
●カテゴリ:インターネット ウェブ制作
✍キーワード:Perl ループ 現在
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● きゃづみぃ
●19ポイント

新しくカウンタになる変数をもうけ、

ループ内で その変数を +1し、その変数により

何回目か 判断したらいいでしょう。



http://www.dokidoki.ne.jp/home2/yoshieo/cmpperl2.html

◎質問者からの返答

ありがとうございます。

実は、その方法をとっていたのですが、カウントしてくれている特殊変数があるのかな?

と思いまして、、、。


2 ● atugari
●19ポイント

実行文の中に、カウンターを入れるのはどうでしょうか?

$i = 1;

{

print STDERR "現在は$i回目です。";

$i++;

}

ダミーです。

http://q.hatena.ne.jp/

◎質問者からの返答

ありがとうございます!

変数に+1してカウントしていくことにします。


3 ● b-wind
●18ポイント
foreach( my $i=0; $i<@count; $i++ ) {
 $_ = $count[$i];
 // 個々に実行文。
}

http://q.hatena.ne.jp/answer

◎質問者からの返答

ありがとうございます。

いつも、的確な助言をいただき、感謝しています。


4 ● snaruseyahoo
●18ポイント

最初

$cnt = 1;としで、

print "ループ実行前(0回)";

foreach ( @count ){

print "ループ実行$cnt回目";

$cnt = $cnt + 1;

}

とします。

そうすると、実行文の中で何かのエラーにより、実行できなかった(つまり0回)の場合も、よくわかります。

ダミーですが、よろしければごらんください

http://www.geocities.jp/snaruse_intage/index.html

◎質問者からの返答

はい、自分が使っていた方法も、これにほぼそっくりです。

ありがとうございます。


5 ● tpichu
●18ポイント

皆さんおっしゃるように、変数($iなど)をあらかじめ作るのが一般的です。

# 処理開始

$i=0; # カウンタ初期化

foreach ( @count ) {

$i++;

# 実行文

print "$i回目のループ\n";

}

なお、「何回ループされたか」が知りたいならば、実行文のあとに$i++;を書けばOKです。

http://www.tohoho-web.com/

◎質問者からの返答

解答、ありがとうございます。

余談ですが、何回目のループか知りたいという事は結構あると思うのです。

つい、先日 $_ の存在を知りまして。

だから、現在、何回目のループかわかる様な、$_ みたいな便利なものがあるのかなーと思って質問いたしました。

ありがとうございました


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ