/
n-dimens
/
pascalabcnet
Обзор
Документация
Войти
/
n-dimens
/
pascalabcnet
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
PABCNetHelp/LangGuide/Operators/foreach.html
86 строк
4 KB
samuraiGH
adding working-tree-encoding attribute (#3325)
07 ноя 2025, 16:12
Не верифицирован
07 ноя 2025, 16:12
cf1fd29
Код
Авторство
О чём код?
<html> <head> <object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e"> <param name="Keyword" value="foreach"> <param name="Keyword" value="in"> <param name="Keyword" value="index"> </object> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title></title> <link rel="StyleSheet" href="../../default.css"> </head> <body> <H1>Оператор цикла foreach</H1> <p>Оператор цикла <code><b>foreach</b></code> имеет одну из следующих форм:</p> <blockquote> <p><code><b>foreach</b> </code><code class="codeit">переменная</code><code> <b>in</b> </code><code class="codeit">контейнер</code><code> <b>[index </b> <em>переменная</em><strong>]</strong> <b>do</b><br> </code><code class="codeit">оператор</code></p> </blockquote> <p>или</p> <blockquote> <p><code><b>foreach</b> </code><code class="codeit">переменная</code><code>:</code><code class="codeit"> тип</code><code> <b>in</b> </code><code class="codeit">контейнер</code><code> <b>[index </b><em>переменная</em><strong>]</strong> <b>do</b><br> </code><code class="codeit">оператор</code></p> </blockquote> <p>или</p> <blockquote> <p><code><b>foreach</b> <strong>var</strong> </code><code class="codeit">переменная</code><code> <b>in</b> </code><code class="codeit">контейнер</code><code> <b>[index </b><em>переменная</em><strong>]</strong> <b>do</b><br> </code><code class="codeit">оператор</code></p> </blockquote> <p>В качестве контейнера может фигурировать динамический массив, строка, множество, а также любой контейнер, удовлетворяющий интерфейсу <code>IEnumerable</code> или <code>IEnumerable<T></code>(например, <code>List<T></code>, <code>Dictionary<Key,Value></code> и т.д.). Переменная цикла должна иметь тип, <strong>совпадающий</strong> с типом элементов контейнера (если контейнер удовлетворяет интерфейсу <code>IEnumerable</code>, то это тип <code>object</code>). В последней форме <code><strong>foreach</strong></code> тип переменной цикла автовыводится по типу элементов контейнера.</p> <p>Необязательная часть <code> <b>index </b><em>переменная</em></code> вводит переменную, которая хранит на каждой итерации индекс элемента контейнера (элементы индексируются с нуля).</p> <p>Переменная цикла пробегает все значения элементов контейнера и для каждого значения переменной цикла выполняется тело цикла. Изменение переменной цикла внутри тела цикла не меняет элементы контейнера, т.е. они доступны только на чтение.</p> <p>Например:</p> <blockquote> <p><code><b>var</b> <br> ss: <b>set of</b> string := ['Иванов','Петров','Сидоров'];<b><br> </b> a: <b>array of</b> integer := (3,4,5);<br> b: <b>array</b> [1..5] <b>of</b> integer := (1,3,5,7,9);<br> l := new List<real>;<br> <b>begin<br> foreach</b> s: string <b>in</b> ss <b>do</b><br> write(s,' ');<br> writeln;<br> <b> foreach</b> x: integer <b>in</b> a <b>do</b><br> write(x,' ');<br> writeln;<br> <b> foreach</b> <strong>var </strong>x <b>in</b> b <b>do</b><br> write(x,' ');<br> writeln;<br> <b> foreach</b> <strong>var</strong> r <b>in</b> l <b>do</b><br> write(r,' ');<br> <b>end</b>.<br> </code></p> </blockquote> <p> </p> </body> </html>