powershell - 使用范围打印字母等级的powershell函数
问题描述
到目前为止,我得到了编写此功能的需要帮助:
if (grades$Final[i] >=90) {
"A"
}
else if (grades$Final[i] >=80){
"B"
}
else if(grades$Final[i] >=70){
"C"
}
else if(grades$Final[i] >=60){
"D"
}
else {"F"}
}
}
解决方案
您好,在这种情况下,我建议使用 aswitch
而不是一堆If
语句
在powershell中我们使用-lt
(小于) -gt
(大于) -eq
(等于) -ge
(大于或等于) -le
(小于或等于)
我注意到您正在使用[i]
我假设的数组中调用索引。在 powershell 中,您可以使用管道|
. 因此,您可以获取一个数组并将其通过管道传递给一个函数。您可以使用@()
.
@("Hello","World") | Foreach-object{
"$_ TEST"
}
输出
Hello TEST
World TEST
所以我打赌你想知道$_
是什么。好吧,当您像上面的示例一样通过管道传递它的对象时,因为数组有 2 个条目,第一个循环等于Hello,第二次等于World
所以这里有一个函数可以让 Int 对字母进行评分。正如您在底部管道中看到的那样将 Ints 导入函数
function Get-LetterGrade(){
param(
[Parameter(Position=1, ValueFromPipeline=$true)]
[int]$Grade
)
process{
switch($Grade){
{$_ -ge 90} { "A" }
{$_ -ge 80 -and $_ -lt 90} { "B" }
{$_ -ge 70 -and $_ -lt 80} { "C" }
{$_ -ge 60 -and $_ -lt 70} { "D" }
{$_ -lt 60} { "F" }
}
}
}
90,80,70,60,50 | Get-LetterGrade
输出将是
A
B
C
D
F
推荐阅读
- r - 使用 R logLikFun 估计卡方分布的 k
- java - 我无法将 CSS 文件安装到我的 JavaFX 项目中
- java - 已在缓存中时更新 WorldWind 客户端中的栅格切片
- sql-server - 如何将 CAST 关键字实现为 Convert(nvarchar,ISNULL 查询 SSMS
- zendesk - 如何在 Zendesk 登录页面上添加外部身份验证按钮?
- mysql - 通过单个查询选择所有客户和所有订单
- android - 如何控制打开消歧义对话框显示的内容?
- amazon-eks - EKS - 内部 LB 或 ndoeport
- c# - C#立即检查按键(控制台应用程序)
- python-2.7 - py2app:0.26.1 无法在 python 2 上导入 qt5