我的代码告诉您您猜出的数字是高于还是低于随机生成的数字,但是似乎只有当其中一个数字小于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)
例如,当
$GeneratedNum = 56
和$Input = 7
时,它返回"Too High"
最佳答案
这是因为您要将字符串与整数进行比较。顺序很重要。
"56" -lt 7
实际上是一样的:
"56" -lt "7"
或者:
56 -lt "7"
会给您正确的结果。 PowerShell尝试将右侧参数强制为左侧的类型。
您可以尝试进行显式转换:
[int]$Input -lt $GeneratedNum