Powershell 入门之逻辑判断(下)

今天我们来看一下 powershell 中的另一种逻辑判断 switch.

switch 语法:

switch($value)
{
    {test_expression} {doing}
    {test_expression} {doing}
    ......
}

在多分支条件逻辑判断的时候,我们除了可以使用 if...elseif...else 外,我们还可以使用 switch。下面我们来看一个一下,怎么通过通过 switch 的方式来处理多个逻辑判断。

我们前面的 if 的示例:

$height = read-Host "Please eenter your height"     
$weight = read-Host "Please eenter your weight"

$bmi = $weight/([math]::pow($height,2))     

Write-Host "BMI is $bmi."    

if ( $bmi -lt 18.5)      
{
    Write-Host "You are too thin."
}
elseif (( $bmi -gt 18.5) -and ($bmi -lt 23.9))   
{
    Write-Host "Your are healthy."
}
elseif (( $bmi -gt 24) -and ( $bmi -lt 27))
{
    Write-Host "Your are a little fat."
}
elseif ( $bmi -gt 32)
{
    Write-Host "You are too fat."
}
else
{
    Write-Host "error."
}

通过 switch 来写:

$height = read-Host "Please eenter your height"     
$weight = read-Host "Please eenter your weight"

$bmi = $weight/([math]::pow($height,2))     

Write-Host "BMI is $bmi."    

switch ($bmi)
     
{
    { $bmi -lt 18.5 } { Write-Host "You are too thin." }
    { ( $bmi -gt 18.5) -and ($bmi -lt 23.9) } { Write-Host "Your are healthy." }
    { ( $bmi -gt 24) -and ( $bmi -lt 27) } { Write-Host "Your are a little fat." }
    { $bmi -gt 32 } { Write-Host "You are too fat." }
    default { Write-Host "error." }
}

运行结果:
https://ithelp.ithome.com.tw/upload/images/20210922/20099494dwNIjDs4Kg.png


<<:  C# 入门之访问修饰符(补充)

>>:  JavaScript Day06 - 流程判断

Service Container

Service Container 是 Laravel 框架中相当重点的一个功能,主要是用来节省撰写...

Day 20:Dijkstra演算法

先前我们利用广度优先搜寻,找到图中两节点之间的最短路径,其中所谓「最短」是指「经过最少的边」。可是这...

[NestJS 带你飞!] DAY01 - 简介

近年来,前後端都可以看到 JavaScript 的踪影,Node.js 的诞生让 JavaScrip...

网路是怎样连接的(八)TCP的性能优化(上)

思考重点 TCP具有那些性能优化机制? 滑动窗口的特色? 滑动窗口发生丢包怎麽办? 核心知识 一系列...

[iT铁人赛Day24]练习题(3)

今天来讲到第三题练习题 题目的大意就是: 有一个小弟弟正在玩积木,然後说他盖了一个城墙。 但他姐姐说...