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行目は、条件になる値を加算しています。
breakでループを抜ける(while文)
$i = 0
while ($true) {
if ($i -eq 3) {
break
}
Write-Host($i) # 0,1,2が出力される
$i = $i + 1
}
3行目は、条件式を$trueにしています。このままの場合は無限ループになります。
5行目のbreakでwhile文を抜けます。
breakがないと無限ループになるので注意が必要です。
breakとラベルで2重ループを抜ける(while文)
$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文を抜けます。
continueでループの先頭に戻る(while文)
$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より小さい間、処理を繰り返します。
breakでループを抜ける(do...while文)
$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がないと無限ループになるので注意して下さい。
breakとラベルで2重ループを抜ける(do...while文)
$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文を抜けます。
continueでループの先頭に戻る(do...while文)
$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(<=) |
関連の記事