/
n-dimens
/
pascalabcnet
Обзор
Документация
Войти
/
n-dimens
/
pascalabcnet
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
PABCNetHelp/LangGuide/Operators/for.html
122 строки
8 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="for"> <param name="Keyword" value="to"> <param name="Keyword" value="downto"> <param name="Keyword" value="do"> <param name="Keyword" value="step"> </object> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title></title> <link rel="StyleSheet" href="../../default.css"> <style type="text/css"> .auto-style1 { color: #FF0000; } </style> </head> <body> <H1>Оператор цикла for</H1> <p>Оператор цикла <code><b>for</b></code> имеет одну из двух форм:</p> <blockquote> <p><code><b>for</b> </code><code class="codeit">переменная</code><code> :=</code><code> </code><code class="codeit">начальное значение</code><code> <b>to</b> </code><code class="codeit">конечное значение</code><code> <b>do</b><br> </code><code class="codeit">оператор</code></p> </blockquote> <p>или</p> <blockquote> <p><code><b>for</b> </code><code class="codeit">переменная</code><code> := </code><code class="codeit">начальное значение</code><code> <b>downto</b> </code><code class="codeit">конечное значение</code><code> <b>do</b><br> </code><code class="codeit">оператор</code></p> </blockquote> <p>Кроме того, переменную можно описать непосредственно в заголовке цикла:</p> <blockquote> <p><code><b>for</b> </code><code class="codeit">переменная</code><code>:</code><code class="codeit"> тип</code><code> := </code><code class="codeit">начальное значение</code><code> <b>to</b> </code><code class="codeit">или</code><code><span lang="ru"> </span> <b>downto</b> </code><code class="codeit">конечное значение</code><code> <b>do</b><br> </code><code class="codeit">оператор</code></p> </blockquote> <p>или</p> <blockquote> <p><code><b>for var</b> </code><code class="codeit">переменная</code><code> := </code><code class="codeit">начальное значение</code><code> <b>to</b> </code><code class="codeit">или</code><code><span lang="ru"> </span> <b>downto</b> </code><code class="codeit">конечное значение</code><code> <b>do</b><br> </code><code class="codeit">оператор</code></p> </blockquote> <p>В последнем случае используется <em><strong><span class="auto-style1">автоопределение типа</span></strong></em> переменной по типу начального значения. В двух последних случаях область действия объявленной переменной распространяется до конца тела цикла, которое в данном случае образует неявный блок. Вне тела цикла такая переменная недоступна, поэтому следующий цикл может использовать переменную с тем же именем:</p> <blockquote> <p><code><b>for</b> <strong>var</strong> i := 1 <b>to</b> 10 <b>do<br></b> Print(i);<br> <b>for</b> <strong>var </strong>i := 1 <b>to</b> 5 <b>do</b><br> Print(i*i);</code></p> </blockquote> <p>Наконец, в заголовке цикла for можно указать шаг изменения цикла:</p> <blockquote> <p><code><b>for var</b> </code><code class="codeit">переменная</code><code> := </code><code class="codeit">начальное значение</code><code> <b>to</b> </code><code class="codeit">конечное значение</code><code> <b>step </b><code class="codeit">значение<b> </b></code> <b>do</b><br> </code><code class="codeit">оператор</code></p> </blockquote> <p>При наличии шага цикла разрешается использовать только направление <code> <b>to</b></code>. </p> <p>Шаг <code> <b>step</b></code> может быть отрицательным. Если шаг <code> <b> step</b></code> равен нулю, возникает ошибка времени выполнения программы.</p> <p>Текст от слова <code><b>for</b></code> до слова <code><b>do</b></code> включительно называется <b><font color="#FF0000"> <i>заголовком цикла</i></font></b>, а оператор после <code><b>do</b></code> - <i><b><font color="#FF0000">телом цикла</font></b>.</i> Переменная после слова <code><b>for</b></code> называется <i><b> <font color="#FF0000">параметром цикла</font></b></i>. Для первой формы цикла с ключевым словом <code><b>to</b></code> параметр цикла меняется от начального значения до конечного значения, увеличиваясь всякий раз на единицу, а для второй формы ключевым словом <code><b>downto</b></code> - уменьшаясь на единицу. Для каждого значения переменной-параметра выполняется тело цикла. Однократное повторение тела цикла называется <i><b><font color="#FF0000">итерацией цикла</font></b></i>. Значение параметра цикла после завершения цикла считается неопределенным.</p> <p>Переменная-параметр цикла может иметь любой <a href="../Types/index_types.html">порядковый тип</a>. При этом начальное и конечное значения должны быть <a href="../Types/typecompatibility.html"> совместимы по присваиванию</a> с переменной-параметром цикла. </p> <p>Например:</p> <blockquote> <p><code><b>var</b> en: (red,green,blue,white);<b><br> ...<br> for</b> en := red <b>to</b> blue <b>do</b><br> write(Ord(en):2);<br> <b>for</b> <b>var</b> c := 'a' <b>to</b> 'z' <b>step</b> 2 <b>do</b><br> write(c);</code></p> </blockquote> <p>Если для цикла <code><b>for</b></code> ... <code><b>to</b></code> начальное значение переменной цикла больше конечного значения или для цикла <code><b>for</b></code> ... <code><b>downto</b></code> начальное значение переменной цикла меньше конечного значения, то тело цикла не выполнится ни разу.</p> <p>Если цикл используется в подпрограмме, то переменная-параметр цикла должна быть описана как локальная. Наилучшим решением в PascalABC.NET является описание переменной в заголовке цикла.</p> <p>Изменение переменной-параметра цикла внутри цикла является логической ошибкой. Например, следующий фрагмент со вложенным оператором <code><b>for</b></code> является ошибочным:</p> <blockquote> <p><code><b>for</b> i := 1 <b>to</b> 10 <b>do</b><br> i -= 1;</code></p> </blockquote> <p> </p> </body> </html>