Foreach

From Wikipedia, the free encyclopedia

For each (or foreach) is a computer language idiom for traversing items in a collection. Foreach is usually used in place of a standard for statement. Unlike other for loop constructs, however, foreach loops maintain no explicit counter: they essentially say "do this to everything in this set", rather than "do this x times". This can potentially avoid off-by-one errors and make code simpler to read.

Python is notable in having no for loop other than foreach: iterator variables are nonexistent in the language.

[edit] Syntax

Syntax varies between languages. Most use the simple word for, roughly as follows:

for item in set:
  do something to item

PHP has an idiosyncratic syntax:

foreach($set as $item)
  do something to $item;

[edit] Language support

Languages with support for foreach loops include C#, ECMAScript, Java, Javascript, Perl, PHP, Python, REALbasic, Ruby, Smalltalk, Tcl, tcsh, Unix shells, and Visual Basic. Languages without foreach include C.

C++ does not have foreach, but its standard library includes a for_each function (in <algorithm>) which applies a function to all items between two iterators, and the Qt toolkit provides a foreach pseudo-keyword for its container classes, implemented as a macro.[1] There is also a similar macro in boost.[2]

In other languages