foreach (配列){}

↑は foreach らしい処理だと思っていたけど、
それが for でもできました。
for は foreach でできる全てのことをカバー
できている気がしました。

でも、そんなはずはないと思って質問しました。
foreach でなければできない処理の例を
教えてください。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

 他の方も書いておられますが,forとforeachは全く同じものです。



 Perlの作者 Larry Wall 氏と "Just Another Perl Hacker" Randal L. Schwaltz 氏の共著で,ほとんど Perl のバイブルと呼んでも差し支えない『Perlプログラミング』(原題:"Programming perl")にそう書かれてますから,間違いありません。私の持ってるのはちょっと古い1993年初版のものですが,p.126 にその旨の記述がありますし,7.4.3節「プログラマの効率を上げるためのヒント」には,「foreachのかわりにforと書く(だって短いんだもの)」と,7.4.4節「保守する人の効率を上げるためのヒント」には「foreachを意味するときは,ちゃんとforeachと書く」とあります。ちなみに私の書き方は後者です。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2001/09/21 01:47

「for」と「foreach」は同じものです。

なので
  for (リスト) {
    :
  }
とか、
  foreach ($i = 0; $i < xx; $i++) {
    :
  }
等と言った書き方もOKです。

 つまりPerlのforループは、C言語のfor的な使い方と、リストの各要素への反復処理という2通りの使い方ができるので、コードを読みやすくするため、前者はfor、後者はforeachと、目的に合わせて使い分けるのが一般的です。
※ただし、foreachの代わりにforを使う人は結構います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
機能は同じでも、スカラは for
配列は foreach としてあるソースでだと
ソースを理解しやすいというメリットが
あるんですね。

お礼日時:2001/09/21 01:44

foreachでないと出来ない処理は無いようですね。


書き方を変えてやればforで同様の処理はカバーできるようです。
foreachでは使えるcontinueブロックもforの書式の中では同様のことが出来る為不要ですし。
尚、私の手持ちの書籍では、「スクリプトではforとforeachは同じものとして扱われる」と書かれています。
    • good
    • 0
この回答へのお礼

ありがとうございます。
同じものが定義されるはずはない
と思って質問したのに、同じだったんですね。

お礼日時:2001/09/21 01:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ