forEach文【forEach statement】
概要

通常のfor文では添字(インデックス)を用いて要素にアクセスするのに対し、forEach文は集合に含まれる各要素そのものを直接扱う形で処理を記述する。多くのプログラミング言語では高階関数の一種として提供され、処理内容を関数やラムダ式として引数に渡すと、その処理を各要素に順に適用してくれる仕組みになっている。
JavaScriptでは配列のメソッドとして実装されており、array.forEach( function( element ) { ... } ) または array.forEach( ( element ) => { ... } ) のようにコールバック関数を渡して使う。コールバックには要素の値、添字、元の配列の3つが引数として渡される。たとえば [1, 2, 3].forEach( (n) => console.log(n) )と書くと、「1」「2」「3」が順に表示される。
JavaではListやSetなどのコレクションクラスがforEach文メソッドを持っており、ラムダ式と組み合わせて list.forEach( item -> System.out.println(item) ) のように記述する。Java 5以降では拡張for文(for-each文)として for( String s : list ) { ... } という構文も使えるが、これも同様の反復処理を行う。Kotlinでは for( item in list ) や .forEach { } という構文が使われる。
forEach文では反復の開始や終了条件を明示的に記述する必要がなく、対象集合の全要素に対して処理が適用される。反復の途中で処理を中断する制御は標準のfor文と異なり制限される場合があり、言語によってはbreak文やcontinue文が使用できないことがある。条件に応じた早期終了が必要な場合には別の構文が選択される。