説明 | switch文とは |
サンプル | switch文のサンプル |
switch文のサンプル(数値の場合) | |
switch文で比較式を使用する | |
大文字と小文字を区別する(-CaseSensitive) | |
大文字と小文字を区別しない(-Exact) | |
任意の文字列で比較する(-Wildcard) | |
正規表現で比較する(-Regex) |
switch文とは
switch(変数){ 条件 or 値{ 処理 break} ・・・ default{ 処理} } |
- 式の結果と値が一致すれば、配下の処理が実行されます。
- breakでswitch文を抜けます。breakがないと下の判定が続けて実行されます。
- defaultは、条件の値がどのcaseの値にも一致しない時に実行されます。省略可能ですが書いたほうが良いです。
switch文のサンプル
$color = "yellow"
switch($color)
{
"red" {Write-Output ("red"); break}
"yellow" {Write-Output ("yellow"); break} # yellow
"blue" {Write-Output ("blue"); break}
default {Write-Output ("other");}
}
1行目は、変数に値をセットしています。
3行目からswitch文が始まります。
6行目は、変数の値と一致するのでその配下の処理が実行されます。
breakでswitch文を抜けます。
switch文のサンプル(数値の場合)
$num = 2
switch($num)
{
1 {Write-Output ("one"); break}
2 {Write-Output ("two"); break} # two
3 {Write-Output ("three"); break}
default {Write-Output ("other"); }
}
数値の場合も文字列のときと同じです。
switch文で比較式を使用する
$num = 5
switch ($num) {
({$_ -le 3})
{Write-Output "3以下"; break}
({$_ -in (4, 5, 6)})
{Write-Output "4から6"; break} # 4から6
({$_ -ge 7})
{Write-Output "7以上"; break}
default {Write-Output "other"}
}
-leは、less than or equal(<=)です。
-geは、greater than or equal(>=)です。
大文字と小文字を区別する(-CaseSensitive)
$color = "RED"
switch -CaseSensitive ($color)
{
"red" {Write-Output ("red"); break}
"Red" {Write-Output ("Red"); break}
"RED" {Write-Output ("RED"); break} # RED
default {Write-Output ("other");}
}
CaseSensitiveは、大文字小文字を区別します。
大文字と小文字を区別しない(-Exact)
$color = "RED"
switch -Exact ($color)
{
"red" {Write-Output ("red"); break} # red
"Red" {Write-Output ("Red"); break}
"RED" {Write-Output ("RED"); break}
default {Write-Output ("other");}
}
Exactは、大文字小文字を区別しません。
任意の文字列で比較する(-Wildcard)
$color = "yellow"
switch -Wildcard ($color)
{
"red" {Write-Output ("red"); break}
"y*w" {Write-Output ("yellow"); break} # yellow
"blue" {Write-Output ("blue"); break}
default {Write-Output ("other");}
}
Wildcardを使用するとアスタリスク(*)が任意の文字列になります。
正規表現で比較する(-Regex)
$color = "e-red"
switch -Regex ($color)
{
"[abc]-red" {Write-Output ("1"); break}
"[def]-red" {Write-Output ("2"); break} # 2
"[ghi]-red" {Write-Output ("3"); break}
default {Write-Output ("other");}
}
[abc]は、かっこ内のどれか1文字にマッチするかという意味です。
関連の記事