Логические операторы и управляющие инструкции в Windows PowerShell, часть 1

Windows PowerShellКак и в любом языке программирования, в Windows PowerShell есть возможность проверки условий на истинность. Это позволяет выбирать между различными действиями, в зависимости от условий.

За проверку истинности/ложности в языке отвечают логические операторы, а за действия в том или ином случае управляющие инструкции.

Логических операторов в PowerShell, в общем-то, не так уж и много.

Оператор Значение Пример использования (возвращается значение $True)
-and И (1 -eq 1) -and (2 -eq 2)
-or ИЛИ (1 -ne 2) -or (1 -eq 2)
-not НЕ -not (1 -gt 2)
! НЕ !(1 -gt)

В примерах использованы операторы сравнения. Если Вы их подзабыли, можно подсмотреть их здесь.

Что касается управляющих инструкций, то это уже более широкая тема, на которой нужно остановиться подробнее.

Инструкция If … ElseIf … Else

If и Else знакомы всем, кто имеет хотя бы поверхностное понятие о языках программирования. В Windows PowerShell при помощи If можно выполнить код только в том случае, если условие возвращает значение $True. В противном случае будет выполняться код после Else. Можно поэтапно проверять несколько условий при помощи ElseIf.

В общем виде всё это выглядит так:

If (условие1)

   {блок_кода1}

[ElseIf (условие2)

   {блок_кода2}]

[Else

   {блок_кода3}]

Сначала проверяется условие1, если оно верно (значение $True), то выполняется блок_кода1. Если условие1 ложно (значение $False), то проверяется условие2. Его истинность приведет к исполнению блока_кода2, а ложность — блока_кода3.

Таких промежуточных условий может быть много. Стоит отметить, что истинность любого условия приведет к завершению работы инструкции. Если же все условия окажутся ложными, то инструкция завершится после того, как отработает код после Else.

Посмотрим, как это работает. Запишем код следующего содержания:

$a=3
If ($a -eq 5) {
'a равно 5'
}
Else {'a не равно 5'}

Логические операторы и управляющие инструкции в Windows PowerShell

Как видим, PowerShell сразу же вывел необходимое сообщение. Кроме того, этот пример показывает, что Windows PowerShell способен выполнять инструкции, состоящие из нескольких строк.

Цикл While

Перейдем к циклам. Цикл While является самым простым из доступных в PowerShell. В нем цикл будет выполняться до тех пор, пока условие имеет значение $True. В общем виде While выглядит так:

While (условие) {блок_команд}

Приведем пример такого цикла.

While ($b -ne 3)
{
$b++
$b
}
Логические операторы и управляющие инструкции в Windows PowerShell
Цикл While

Думаю, здесь всё интуитивно понятно. При каждом наше переменная $b увеличивается на 1 до тех пор, пока не станет равной 3.

Цикл Do … While

В целом, это почти то же самое, но с одним отличием — условие проверяется не до блока команд, а после.

Do {блок_команд} While (условие)

$c=5
Do {$c++; $c} While ($c -ne 10)
Логические операторы и управляющие инструкции в Windows PowerShell
Цикл Do … While

Цикл For

Данный цикл является циклом со счетчиком. Такой цикл обычно применяется для выполнения определенных действий с каждым из элементов какого-либо массива. В общем виде цикл For выглядит так:

For (инициация; условие; повторение) {блок_команд}

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

условие — часть инструкции, которая может принимать значение $True или $False. Проверка условия проводится при каждой итерации цикла. При значении $True выполняется блок_команд.

повторение — одна или несколько разделяемых запятыми команд, чаще всего используемых для изменения переменной, проверяемой внутри условия. Эти команды выполняются после блока_команд и перед новой проверкой условия.

блок_команд — одна или несколько команды, выполняемых, когда значение условия равно $True.

Собственно, вот простой пример.

For ($d=7; $d -lt 12; $d++) {$d}
Логические операторы и управляющие инструкции в Windows PowerShell
Цикл For

Пока значение переменной $d будет меньше 12, цикл For будет увеличивать её значение на 1 и выводить нам на экран.

В следующей части статьи продолжим разбирать управляющие инструкции в виде циклов.

Продолжение следует…

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *