Powershell 繰り返し処理(ForEach、Do While、Do Untilなど)

PowerShell

Powershellの繰り返し処理(ForEach、Do While、Do Untilなど)について説明します。

ForEach構文

ForEach構文は、配列やコレクションの要素を順に処理します。

ForEach構文は、配列またはコレクションの要素の数だけ、ループ(処理の繰り返し)を行い、、ループするごとに要素を取り出し、要素がなくなるとループが終了します。ループの終了条件を記述する必要はありません。

ForEach構文

ForEach(変数 in 配列、またはコレクション)
{
 ループ時の処理
}

配列やコレクションの各要素が変数に代入され、、 ステートメントブロック内で参照できます。 

使用例

$ar = "a", "b", "c"

foreach ($item in $ar) {
 Write-Host $item
}

# 実行結果
a
b
c

For構文

For構文では、ループする回数(条件)を指定してループごとの処理を実行できます。

ForEach構文はループする回数を指定しませんが、ループする回数を指定したい場合はFor構文を使用します。

For構文

for (カウンター変数=初期値; ループ終了条件式; カウンター増減式) {
 ループ時の処理
}

「カウンター変数=初期値」は最初の1回だけ実行され、 ループカウンタ変数を初期化します。

「ループ終了条件式」はループを繰り返す条件で、 条件式がTrueの間は処理を繰り返し、 Falseになるとループを終了します。

「カウンター増減式」はループカウンタの増減値を決める式です。例えば、ループカウンター変数の後ろに++を記述すると、変数の値を1ずつ増やします。

使用例

$ar = "a", "b", "c"

for ($i = 0; $i -lt $ar.Count; $i++) {
 Write-Host $ar[$i]
}

# 実行結果
a
b
c

While構文

指定された条件が真(True)の間、繰り返して処理を行います。条件が偽(False)になると、繰り返し処理を抜けます。

While構文で指定した条件が真のまま変わらない場合、無限ループになるので、注意が必要です。

While構文では、ループに入るときに条件を評価します。そのため、条件が最初から偽(False)の場合は、1度も繰り返し処理を行いません。

While構文

while (条件式) {
 繰り返し処理
}

使用例

$i = 0
while ($i -ne 3) {
 Write-Host $i
 $i++
}

# 実行結果
0
1
2

Do While、Do Until構文

Do While構文とDo Until構文は、繰り返し処理を実行してから条件を評価します。

そのため、少なくても1回はループ内の処理を実行します。

Do While構文は、条件が真(True)の間、ループを処理を繰り返します。

Do Until構文は、条件が偽(False)の間ループ処理を繰り返します。

Do While構文

do {
 繰り返し処理
} while (条件式)

使用例

$i = 0
do {
 Write-Host $i
 $i++
} while ($i -ne 3)

# 実行結果
0
1
2

Do Until構文

do {
 繰り返し理
} until (条件式)

使用例

$i = 0
do {
	Write-Host $i
	$i++
} until ($i -eq 3)

# 実行結果
0
1
2

まとめ

今回はPowerShellの繰り返し処理ついて説明しました。

タイトルとURLをコピーしました