Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Назначение: Windows PowerShell 2.0, Windows PowerShell 3.0
РАЗДЕЛ
about_For
КРАТКОЕ ОПИСАНИЕ
Содержит описание команды языка, которую можно использовать для выполнения операторов в зависимости от условия.
ПОДРОБНОЕ ОПИСАНИЕ
Оператор For (цикл For) — конструкция языка для создания цикла, в котором команды в блоке команд выполняются, пока указанное условие принимает значение true.
Типичным применением цикла For является перебор массива значений и выполнение действий применительно к подмножеству этих значений. В большинстве случаев, если необходимо перебрать все значения в массиве, имеет смысл применять оператор Foreach.
Синтаксис
Ниже показан синтаксис оператора For.
for (<init>; <condition>; <repeat>)
{<statement list>}
Заполнитель <init> представляет одну или несколько разделяемых запятыми команд, выполняемых перед началом цикла. Обычно элемент оператора <init> используется для создания переменной и присвоения ей начального значения. Обратите внимание на то, что синтаксис с запятой не работает с операторами присваивания, как в следующем примере:
$ofs=",";$rs = "rs"; $cs = "cs"; for ($r = $rs, $c = $cs; $true;)
{ "r is '$r' and c is '$c'"; break }
Эта переменная затем будет использоваться для проверки условия в следующей части оператора For.
Заполнитель <condition> представляет часть оператора For, которая принимает логическое значение true или false. Windows PowerShell® вычисляет условие при каждом выполнении цикла For. Если результатом вычисления выражения является значение true, выполняется блок команд, а выражение вычисляется снова. Если условие по-прежнему имеет значение true, команды в списке операторов выполняются снова. Цикл повторяется, пока условие не примет значение false.
Заполнитель <repeat> представляет одну или несколько команд, разделенных запятыми, которые выполняются при каждом повторении цикла. Обычно это используется для изменения переменной, проверяемой внутри части <condition> оператора.
Заполнитель <statement list> представляет одну или несколько команд, выполняющихся при каждом входе в цикл или его повторении. Содержимое списка операторов заключается в фигурные скобки.
Примеры
Как минимум для оператора For необходимы круглые скобки, заключающие блок <init>, <condition> и <repeat>, а также заключенная в фигурные скобки команда в блоке <statement list>.
Обратите внимание, что в приведенных ниже примерах намеренно приводится код за пределами оператора For. В следующих примерах код помещен внутрь оператора For.
Например, приведенный ниже оператор For будет постоянно отображать значение переменной $i до тех пор, пока команда не будет вручную прервана нажатием клавиш CTRL+C.
$i = 1
for (;;){Write-Host $i}
В список операторов можно добавить дополнительные команды, чтобы значение переменной $i увеличивалось на 1 при каждом выполнении цикла, как показано в примере ниже.
for (;;){$i++; Write-Host $i}
До тех пор пока пользователь не прервет команду нажатием клавиш CTRL+C, этот оператор будет постоянно отображать значение переменной $i, которое будет увеличиваться на 1 при каждом выполнении цикла.
Вместо изменения значения переменной в списке операторов цикла For можно воспользоваться блоком <repeat>, как показано ниже.
$i=1
for (;;$i++){Write-Host $i}
Этот оператор по-прежнему будет повторяться бесконечно долго или до тех пор, пока пользователь не прервет команду нажатием клавиш CTRL+C.
Задав соответствующее условие (с помощью блока <condition> оператора For), можно завершить цикл For, когда условие примет значение false. В примере ниже цикл For выполняется, пока значение переменной $i меньше или равно 10.
$i=1
for(;$i -le 10;$i++){Write-Host $i}
Вместо создания и инициализации переменной за пределами оператора For то же самое можно сделать внутри цикла For с помощью блока <init>.
for($i=1; $i -le 10; $i++){Write-Host $i}
В качестве разделителя блоков <init>, <condition> и <repeat> оператора For вместо точки с запятой можно использовать знаки возврата каретки. В примере ниже показана эта альтернативная форма оператора For.
for (<init>
<condition>
<repeat>){
<statement list>
}
Такая альтернативная форма оператора For используется в файлах сценариев Windows PowerShell и в командной строке Windows PowerShell. Но при вводе интерактивных команд в командной строке удобнее использовать синтаксис оператора For с точкой с запятой.
Цикл For более гибок, чем цикл Foreach, так как он позволяет увеличивать значения в массиве или коллекции с помощью шаблонов. В примере ниже переменная $i увеличивается на 2 в блоке <repeat> оператора For.
for ($i = 0; $i -ile 20; $i += 2) {Write-Host $i}
СМ. ТАКЖЕ
about_Comparison_Operators
about_Foreach