下面的例子將If-ElseIF-Else轉(zhuǎn)換成Switch語(yǔ)句
代碼如下:
# 使用 IF-ElseIF-Else
If( $value -eq 1 )
{
"Beijing"
}
Elseif( $value -eq 2)
{
"Shanghai"
}
Elseif( $value -eq 3 )
{
"Tianjin"
}
Else
{
"Chongqing"
}
# 使用 Switch
switch($value)
{
1 {"Beijing"}
2 {"Shanghai"}
3 {"Tianjin"}
4 {"Chongqing"}
}
1
測(cè)試取值范圍
使用 Switch 時(shí)缺省的比較運(yùn)算符為 -eq 等于,你也可以自己定制比較條件,將條件放在花括號(hào)中,必須保證條件表達(dá)式的返回值為布爾類型”$True”或”$False”
代碼如下:
$value=18
# 使用 Switch 測(cè)試取值范圍
switch($value)
{
{$_ -lt 10} {"小于10"}
10 {"等于10"}
{$_ -gt 10} {"大于10"}
}
#輸出
#大于10
沒(méi)有匹配條件
在IF-Else語(yǔ)句中如果沒(méi)有合適的條件匹配,可以在Else中進(jìn)行處理,同樣在Switch語(yǔ)句中如果case中沒(méi)有條件匹配,可以使用關(guān)鍵字Default進(jìn)行處理。
同樣是上面的例子,稍加修改:
代碼如下:
$value=-7
# 使用 Switch 測(cè)試取值范圍
switch($value)
{
{($_ -lt 10) -and ( $_ -gt 0) } {"小于10"}
10 {"等于10"}
{$_ -gt 10} {"大于10"}
Default {"沒(méi)有匹配條件"}
}
#Output:
#沒(méi)有匹配條件
多個(gè)條件匹配
如果case中有多個(gè)條件匹配,那么每個(gè)匹配的條件都會(huì)進(jìn)行處理,例如:
代碼如下:
$value=2
# 使用 Switch 測(cè)試取值范圍
switch($value)
{
{$_ -lt 5 } { "小于5" }
{$_ -gt 0 } { "大于0" }
{$_ -lt 100}{ "小于100"}
Default {"沒(méi)有匹配條件"}
}
#小于5
#大于0
#小于100
如果碰到匹配條件時(shí)只處理一次,可以使用Break關(guān)鍵字
代碼如下:
$value=99
# 使用 Switch 測(cè)試取值范圍
switch($value)
{
{$_ -lt 5 } { "小于5"; break}
{$_ -gt 0 } { "大于0"; break}
{$_ -lt 100} { "小于100"; break}
Default {"沒(méi)有匹配條件"}
}
#大于0
比較字符串
之前的條件比較的都是數(shù)字,接下來(lái)比較字符串,默認(rèn)的條件判斷為-eq ,我們知道在Powershell中字符串的使用-eq比較大小寫不敏感,所以才有下面的例子:
新聞熱點(diǎn)
疑難解答
圖片精選