РАЗДЕЛ
about_For
КРАТКОЕ ОПИСАНИЕ
Описывает команду языка, которую можно использовать для выполнения
инструкций в зависимости от условия.
ПОЛНОЕ ОПИСАНИЕ
Инструкция For (называемая также циклом For) - это языковая
конструкция, которая служит для создания цикла, в котором блок
команд выполняется, пока заданное условие остается истинным.
Типичным применением цикла For является перебор массива значений и
выполнение действий на подмножестве этих значений. В большинстве
случаев, если необходимо перебрать все значения в массиве, имеет
смысл применять инструкцию Foreach.
Синтаксис
Ниже показан синтаксис инструкции For.
for (<инициация>; <условие>; <повторение>)
{<список_инструкций>}
Заполнитель <инициация> представляет одну или несколько разделяемых
запятыми команд, выполняемых перед началом цикла. Обычно элемент
инструкции <инициация> используется для создания переменной и
присвоения ей начального значения.
Эта переменная затем будет использоваться для проверки условия
в следующей части инструкции For.
Заполнитель <условие> представляет часть инструкции For,
которая принимает логическое значение true или false. Windows
PowerShell вычисляет условие при каждом выполнении цикла For. Если
результатом вычисления выражения является значение true, выполняется блок
команд, а выражение вычисляется снова. Если условие по прежнему имеет
значение true, команды в списке инструкций выполняются снова. Цикл
повторяется, пока условие не примет значение false.
Заполнитель <повторение> представляет одну или несколько команд,
разделенных запятыми, которые выполняются при каждом повторении цикла.
Обычно это используется для изменения переменной, проверяемой внутри
части <условие> инструкции.
Заполнитель <список_инструкций> представляет одну или несколько
команд, выполняющихся при каждом входе в цикл или его повторении.
Содержимое списка инструкций заключается в фигурные скобки.
Примеры
Как минимум, для инструкции For необходимы круглые скобки,
заключающие блок <инициация>, <условие> и <повторение>, а также
заключенная в фигурные скобки команда в блоке <список_инструкций>.
Обратите внимание, что в приведенных ниже примерах намеренно
приводится код за пределами инструкции For. В следующих примерах код
помещен внутрь инструкции For.
Например, следующая инструкция For будет постоянно отображать
значение переменной $i до тех пор, пока команда не будет
вручную прервана нажатием клавиш Ctrl+C.
$i = 1
for (;;){Write-Host $i}
В список инструкций можно добавить дополнительные команды,
чтобы значение переменной $i увеличивалось на 1 при каждом
выполнении цикла, как показано в следующем примере.
for (;;){$i++; Write-Host $i}
До тех пор, пока пользователь не прервет команду нажатием
клавиш CTRL+C, эта инструкция будет постоянно отображать значение
переменной $i, которое будет увеличиваться на 1 при каждом выполнении
цикла.
Вместо изменения значения переменной в списке инструкций цикла
For можно воспользоваться блоком <повторение>, как показано ниже.
$i=1
for (;;$i++){Write-Host $i}
Эта инструкция по-прежнему будет повторяться бесконечно долго
или до тех пор, пока пользователь не прервет команду нажатием
клавиш CTRL+C.
Задав соответствующее условие (с помощью блока <условие>
инструкции For), можно завершить цикл For, когда условие примет
значение false. В следующем примере цикл For выполняется, пока
значение переменной $i меньше или равно 10.
$i=1
for(;$i -le 10;$i++){Write-Host $i}
Вместо создания и инициализации переменной за пределами
инструкции For то же самое можно сделать внутри цикла For с
помощью блока <инициация>.
for($i=1; $i -le 10; $i++){Write-Host $i}
В качестве разделителя в блоках <инициация>, <условие> и
<повторение> инструкции For вместо точки с запятой можно
использовать знаки возврата каретки. В следующем примере
показана эта альтернативная форма инструкции For.
for (<инициация>
<условие>
<повторение>){
<список_инструкций>
}
Такая альтернативная форма инструкции For используется в
файлах скриптов Windows PowerShell и в командной строке Windows
PowerShell. Но при вводе интерактивных команд с консоли удобнее
использовать синтаксис инструкции For с точкой с запятой.
Цикл For обладает большей гибкостью, чем цикл Foreach, поскольку он
позволяет увеличивать значения в массиве или в коллекции при помощи
шаблонов. В следующем примере переменная $i увеличивается на 2 в блоке
<повторение> инструкции For.
for ($i = 0; $i -ile 20; $i += 2) {Write-Host $i}
СМ. ТАКЖЕ
about_Comparison_Operators
about_Foreach