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


foreach ( @count ){
 実行文
}

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

よろしくお願いします。

回答の条件
  • URL必須
  • 1人20回まで
  • 登録:2007/02/16 14:46:41
  • 終了:2007/02/20 19:26:35

回答(6件)

id:taknt No.1

きゃづみぃ回答回数13539ベストアンサー獲得回数11982007/02/16 14:57:24

ポイント19pt

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

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

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



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

id:zachouR

ありがとうございます。

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

と思いまして、、、。

2007/02/16 15:11:44
id:atugari No.2

atugari回答回数56ベストアンサー獲得回数02007/02/16 14:59:43

ポイント19pt

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

$i = 1;

{

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

$i++;

}

ダミーです。

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

id:zachouR

ありがとうございます!

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

2007/02/16 15:12:08
id:b-wind No.3

b-wind回答回数3344ベストアンサー獲得回数4402007/02/16 15:13:01

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

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

id:zachouR

ありがとうございます。

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

2007/02/17 00:20:01
id:snaruseyahoo No.4

snaruseyahoo回答回数491ベストアンサー獲得回数42007/02/16 17:59:39

ポイント18pt

最初

$cnt = 1;としで、

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

foreach ( @count ){

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

$cnt = $cnt + 1;

}

とします。

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

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

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

id:zachouR

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

ありがとうございます。

2007/02/17 00:20:36
id:tpichu No.5

tpichu回答回数304ベストアンサー獲得回数12007/02/16 18:21:14

ポイント18pt

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

# 処理開始

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

foreach ( @count ) {

$i++;

# 実行文

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

}

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

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

id:zachouR

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

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

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

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

ありがとうございました

2007/02/17 00:22:58
id:b-wind No.6

b-wind回答回数3344ベストアンサー獲得回数4402007/02/17 00:43:02

ポイント18pt

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

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

確かに有りそうなものですが、なぜか無いのです。

perlvar - Perl で定義済みの変数

id:zachouR

うーん、、、不思議ですね。

どうしてないんでしょう?

2007/02/17 21:30:21

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません