Foreach文
Java 5で導入された拡張for文 (enhanced for statement) がforeach文に相当する。コレクションにはjava.util.Collectionなど、java.lang.Iterableを実装する式を配置することができる。
for (型 変数 : コレクション) { 文 }
また、文ではなくメソッドであるが
コレクション.forEach( 変数 -> { 文 } )
の様に .forEach メソッドにラムダ関数を渡しコレクションの要素に対し反復処理を行うことができる。
Goのforeachループは、配列、スライス、文字列、マップ、チャンネルのループに使用できる。
2値形式を使用すると、インデックス/キー(最初の要素)と値(2番目の要素)を得ることができる。
for index, value := range コレクション { // インデックスと値に何かをする }
単値のフォームを使って、index/key(最初の要素)を取得する。
for index := range コレクション { // インデックスに何かをする }
cshではforeachと書き、shではforと書く。実用上リストの部分にはワイルドカードを含むファイル列を書くことが多い。
csh系
foreach 変数 ( リスト ) 文 end
sh系
for 変数 in リスト do 文 done
OracleのPL/SQLにも、カーソルというForEachと似たような機能が実装されている。 カーソルは用途が限定されているため、番外編として紹介する。
SELECT文でとってきた複数レコードを、カーソルを使って順繰り出力するPL/SQL文を示す。
DECLARE CURSOR C IS SELECT * FROM TBL1 WHERE TBL1.FIELD1 >= 100; BEGIN FOR D IN C LOOP DBMS_OUTPUT.PUT_LINE(D.FIELD1 || ' ' || D.FIELD2 || ' ' || D.FIELD3); END LOOP; END;