Il mio codice indica se il proprio numero indovinato sia superiore o inferiore a un numero generato in modo casuale, ma sembra di confrontare solo le prime cifre del numero, quando uno di loro è al di sotto di 10.Perché i numeri interi in PowerShell vengono confrontati in base alle cifre?
[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)
Ad esempio, quando $GeneratedNum = 56
e $Input = 7
restituisce "Too High"
Il valore letto da 'lettura Host' è un non stringa di un intero . Il tuo indicatore variabile non è un cast che sembrerebbe. Utilizza un cast sul lato destro del compito e sembra funzionare correttamente. –
Grazie! Ha funzionato perfettamente – iasanator