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の繰り返し処理ついて説明しました。
