Введение в циклы в PowerShell

Нам всегда нужны циклы, если у нас есть что-то повторяющееся. В цикле мы выполняем фрагмент кода или любое выражение на повторяющейся основе. Один реальный пример: предположим, что в школе учится 20000 учеников, и по какой-то причине университет решил дать 5 дополнительных баллов за экзамены каждому ученику. Таким образом, университет решил дать эти 5 оценок каждому студенту, кроме тех, чья посещаемость составляет менее 100 дней. Теперь вы просто предполагаете, как сотрудники будут это делать, им придется проверять оценки каждого учащегося и посещаемость года. Но то же самое с помощью любого цикла это можно было бы сделать очень легко, создав массив учеников с их оценками и датами посещаемости. Таким образом, используя цикл, мы можем сэкономить дополнительные усилия. Давайте разберемся в Loops в PowerShell подробно.

Типы циклов в PowerShell

Есть много способов запустить цикл в PowerShell, но он всегда зависит от ваших требований и возможности программы, например, если вы хотите выполнить хотя бы один раз для любого массива, чем мы должны использовать цикл do-while, иначе есть цикл for и для каждого, которые хороши .

Типы и их примеры приведены ниже:

1. Пока

Хотя оператор принимает условие в качестве аргумента, а выполнение оператора внутри цикла while зависит от условия, это означает, что если условие является успешным, то оно выполнит оператор, в противном случае - нет.

Синтаксис:

while(condition)
(
Statement 1
Statement 2
….
)

Пример:

$j = 0
while($j -lt 10)
(
Write-Output $j
$j++ )

Ниже приведен экран для выполнения кода выше

2. Делай пока

Функция do while аналогична разнице циклов while, только в том, что она будет выполнена хотя бы один раз, это означает, что она будет выполнять блок do в первый раз, и в то время как block, если условие истинно. В приведенном ниже синтаксисе do блок выполняется впервые.

  • Do : этот блок выполняется первый и один раз при запуске.
  • Хотя : Выполнение оператора 1 и оператора 2 полностью зависит от успеха условия.

Синтаксис:

Do
(
Statement 1
Statement 2
….)while(condition)(
Statement 3
Statement 4
…..
)

Пример № 1:

$j = 0
do
(
Write-Output $j // this block will execute first time
$j++
)while($j -lt 10)

Пример № 2:

В этом примере блок do выполнится в первый раз, даже если условие не выполнено.

$j = 0
do
(
Write-Output $j
$j--
)while($j -gt 0)

Экран для обеих программ показан ниже

3. До

До, пока не немного отличается от дел, пока, в до, пока выполнение будет продолжаться, пока не вернет отрицательный результат «до блока». Здесь важны две вещи.

  • Do : этот блок будет выполняться до тех пор, пока не будет выполнено условие блока, то есть, пока блок не вернет отрицательное значение.
  • До : выполнение оператора блока 1 и оператора 2 до тех пор, пока условия не вернут отрицательные результаты.

Синтаксис:

do
(
Statement 1
Statement 2
….
)until(condition)

Пример:

$i = 0
do
(
Write-Output $i
$i++
)until($i -ge 5) //keep checking condition

В блоке «до» мы видим, что выполнение блока до будет продолжаться до тех пор, пока условие «до блока» не вернет положительное значение.

Ниже приведен экран для выполнения кода выше

4. Для

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

  • Раздел инициализации : в этом разделе было присвоено начальное значение для любой переменной, этот раздел запускается один раз в первый раз.
  • Условие : В условных частях мы записываем наше условие, для которого будет выполняться цикл, что означает, что выполнение блока операторов всегда зависит от успешности условных частей, если условие истинно, тогда блок операторов будет выполняться иначе.
  • Операция : В этом блоке мы можем увеличить, уменьшить или изменить значение инициализации переменной или любых других вещей в соответствии с нашими требованиями.

Синтаксис:

for($initialisation; condition; operation)
(
Statement 1
Statement 2
….
)

Пример № 1:

for($i = 0; $i -lt 3; $i++)
(
Write-Output $i
)

Экран вывода вышеуказанного кода

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

Пример № 2:

for($j = 0; $j -lt 3; $j++)
(
$line = ''for($j = 0; $j -lt 3; $j++)
(
$line += $j.ToString() + $j.ToString() + ' '
)
Write-Output $line
)

Выход: 00 11 22

5. ForEach

«Foreach» запускает блоки операторов в течение последовательного времени до последнего элемента массива. Хорошая вещь в выражении forEach заключается в том, что нам не нужно писать какой-либо отдельный код для извлечения массива элементов. В целом, «foreach» - это оптимизированная версия цикла «for», который дает внутренний элемент массива без написания каких-либо программ. Здесь он просто проверяет наличие элемента внутри массива, в котором мы выполняем цикл «foreach», если какой-либо элемент находится там, он выполнит блоки операторов 1 и 2.

Синтаксис:

foreach($arrayItems)
(
Statement 1
Statement 2
…..
)

Пример:

$numbers = 23, 21, 22, 78
foreach($number in $numbers)
(
“$number is now =“ +$number
)

Ниже экрана показывают выше казни

Преимущества циклов в PowerShell

Самым большим преимуществом использования цикла является то, что он сокращает слишком много ручной работы, а также очень хорошо контролировать большие объемы данных для аналогичного вида деятельности на нем. Допустим, я хочу, чтобы вы напечатали от 1 до 1000000, и я сказал вам, что вы можете добавить 1 к каждому числу, кратному 2, что является четным числом. Затем, если вы начнете печатать одну за другой и попытаетесь добавить 1 к каждому четному числу, это займет слишком много времени. Итак, лучшим и простым способом, который вы предложили, было просто повторить этот процесс добавления единицы к числу, пока мы не достигнем 1000000. Самое большое преимущество, которое мы получаем от цикла, это то, что мы повторно используем один и тот же кусок кода, нам не требуется писать тот же код для lakhs данных, он будет автоматически выполнять код до конца.

Ниже приведены несколько преимуществ.

  • Увеличение возможности повторного использования кода, что делает код меньше
  • Более быстрый расчет для больших данных, экономя много ручного труда
  • Избыточность кода меньше.

Пример с его преимуществами

Вопрос: печать до 1000.

Without loop,
Write-Output 1;
Write-Output 2;
Write-Output 3;
Write-Output 4;
…so on
Till 100

With loop,
$x=1..100
foreach($y in $x)(
Write-Output $y;
)

Рекомендуемые статьи

Это было руководство по циклам в PowerShell. Здесь мы обсуждаем типы циклов в PowerShell вместе с их преимуществами. И мы обнаружили, что циклы - очень мощный инструмент с меньшими усилиями для использования одного и того же кода. Вы также можете взглянуть на следующие статьи, чтобы узнать больше -

  1. Что такое сценарии оболочки?
  2. Строковые функции PowerShell
  3. Операторы PowerShell
  4. Команды PowerShell
  5. Примеры массива в PowerShell