PowerShell while文とdo while文のサンプル

PowerShellのwhile文とdo while文のサンプルです。条件で処理の繰り返しを制御します。

目次

while文 while文とは / while文のサンプル
  ループを抜ける(break) / 二重ループを抜ける
  ループの先頭に戻る(continue)
do...while文 do...while文とは / do...while文のサンプル
  ループを抜ける(break) / 二重ループを抜ける
  ループの先頭に戻る(continue)
演算子 比較演算子

while文とは

while (条件式)
{
       処理
}
  • 条件がtrueの間、処理を繰り返します。
  • 条件式がfalseの場合、処理を終了します。
  • 最初の判定がfalseの場合、処理は1回も実行されません。
  • 処理に条件式をfalseにするロジックがないと無限ループになるので注意が必要です。

 

while文のサンプル

$i = 0

while ($i -lt 5) {
    Write-Host($i) # 0,1,2,3,4が出力される
    $i = $i + 1
}

3行目は、値が5より小さい間、処理を繰り返します。ltはless than(<)を表します。
5行目は、条件になる値を加算しています。

 

while文 ループを抜ける(break) 

$i = 0

while ($true) {
    if ($i -eq 3) { 
	    break
    }
    Write-Host($i) # 0,1,2が出力される
    $i = $i + 1
}

3行目は、条件式を$trueにしています。このままの場合は無限ループになります。
5行目のbreakでwhile文を抜けます。
breakがないと無限ループになるので注意が必要です。

 

二重ループを抜ける

$i = 0

:label1 while ($true) {
    while ($true) {
        if ($i -eq 3) { 
	        break label1
        }
        Write-Host($i) # 0,1,2が出力される
        $i = $i + 1
	}
}

whileが2つある2重ループです。label1はラベルです。
6行目のbreakとラベルで外側のwhile文を抜けます。

 

while文 ループの先頭に戻る(continue)

$i = 0

while ($i -lt 5) {
    if ($i -eq 3) {
        $i = $i + 1
	    continue
    }
    Write-Host($i) # 0,1,2,4が出力される
    $i = $i + 1
}

6行目のcontinueは、次は3行目を実行します。
このサンプルでは5行目の加算がないと無限ループになるので注意して下さい。

 

do...while文とは

do {
      処理
}
while (条件式);
  • 条件がtrueの間、処理を繰り返します。
  • 条件式がfalseの場合、処理を終了します。
  • 必ず1回は処理が実行されます。
  • 処理に条件式をfalseにするロジックがないと無限ループになるので注意が必要です。

 

do...while文のサンプル

$i = 0

do{
    Write-Host($i) # 0,1,2,3,4が出力される
    $i = $i + 1
}
while ($i -lt 5)

値が5より小さい間、処理を繰り返します。

 

do...while文 ループを抜ける(break)

$i = 0

do{
    if ($i -eq 3) {
        break
    }
    Write-Host($i) # 0,1,2が出力される
    $i = $i + 1
}
while ($true)

5行目のbreakは、do...while文を抜けます。
10行目は、条件を$trueにしています。このサンプルでは12行目のbreakがないと無限ループになるので注意して下さい。

 

二重ループを抜ける

$i = 0

:label1 do{
    do{
        if ($i -eq 3) {
            break label1
        }
        Write-Host($i) # 0,1,2が出力される
        $i = $i + 1
    }
    while ($true)
}
while ($true)

doが2つある2重ループです。dowhile1はラベルです。
6行目のbreakとラベルで外側のdo-while文を抜けます。

 

do...while文 ループの先頭に戻る(continue)

$i = 0

do{
    if ($i -eq 3) {
        $i = $i + 1
        continue
    }
    Write-Host($i) # 0,1,2,4が出力される
    $i = $i + 1
}
while ($i -lt 5)

6行目のcontinueは、次は3行目を実行します。
このサンプルでは5行目の加算がないと無限ループになるので注意して下さい。

 

比較演算子

2つの値を比べて条件を満たしていればtrue,そうでない場合はfalseを返します。

比較演算子 説明
a -eq b aとbの値は等しい equal(==) ※英字の大文字と小文字は区別しない
a -ceq b aとbの値は等しい ※英字の大文字と小文字を区別する
a -ne b aとbの値は等しくない not equal(!=) ※英字の大文字と小文字は区別しない
a -cne b aとbの値は等しくない ※英字の大文字と小文字を区別する
a -gt b aはbより大きい greater than(>)
a -ge b aはbより大きい または 等しい greater than or equal(>=)
a -lt b aはbより小さい less than(<)
a -le b aはbより小さい または 等しい less than or equal(<=)

関連の記事

PowerShell if文のサンプル
PowerShell for文 処理を繰り返すサンプル

△上に戻る