nic*_*ick 13 powershell comparison operators
我的代码告诉您猜测的数字是高于还是低于随机生成的数字,但它似乎只比较数字的第一个数字,当其中一个数字低于10时.
[int]$GeneratedNum = Get-Random -min 1 -max 101
Write-Debug $GeneratedNum
$isQuitting = $false
Do{
[int]$Input = Read-Host "Take a guess!"
If($Input -lt $GeneratedNum){Write-Output "Too Low"}
If($Input -gt $GeneratedNum){Write-Output "Too High"}
If($Input -eq $GeneratedNum){Write-Output "Good Job!"; $isQuitting = $true}
} Until($isQuitting -eq $true)
Run Code Online (Sandbox Code Playgroud)
例如,当$GeneratedNum = 56和$Input = 7,它返回"Too High"
bri*_*ist 20
这是因为您将字符串与整数进行比较.订单很重要.
"56" -lt 7
Run Code Online (Sandbox Code Playgroud)
实际上是一样的:
"56" -lt "7"
Run Code Online (Sandbox Code Playgroud)
或者:
56 -lt "7"
Run Code Online (Sandbox Code Playgroud)
会给你正确的结果.PowerShell尝试将右侧参数强制转换为左侧的类型.
您可以尝试显式转换:
[int]$Input -lt $GeneratedNum
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19625 次 |
| 最近记录: |