foreach является конструкцией цикличного выполнения, которая выполняет данную часть кода для каждого элемента в списке/наборе/массиве. В отличие от для цикла, цикл foreach не требует, чтобы кодер поддержал переменную счетчика для предотвращения off-one (fencepost) ошибки. Рекомендуется использовать, когда простое повторение по целому массиву/списку/набору необходимо.

foreach оператор повторяет группу встроенных операторов для каждого элемента в массиве или объектном наборе.

foreach оператор используется для итерации через набор, но не может использоваться, чтобы добавить или удалить объекты из исходного набора, который мог вызвать непредсказуемые побочные эффекты. Если необходимо добавить или удалить объекты из исходного набора, используйте для цикла.

Некоторая форма цикла foreach поддерживается большинством языков, хотя синтаксис может отличаться значительно. Вот несколько примеров (чтобы быть расширенными):

C#

foreach (var element in Collection) 

Java

for (SomeType element : collection) 

JavaScript

for (element in collection) 

Haxe

for (element in iterable) 

PHP

foreach($collection as $key => $value) 

Visual Basic.NET

For Each Element As SomeType In Collection ... Next 

C++ 11

for ( i : collection ) 

Objective C

for (id object in list) 

Быстро

for (item in list) 

Awk

for (i in a) 

Perl

for my $element (@array) 

Следующие языки исходно не поддерживают вида foreach оператора:

Для некоторых языков foreach семантика является канонической формой a for цикл. В качестве примера можно привести

См. также: , , , и .