Read-Host
always returns a string, and -lt
performs lexical comparison with a string as the LHS:
PS> '25' -lt 3
True # because '2' comes lexically before '3'
You must convert the string returned from Read-Host
to a number in order to perform numerical comparison:
[int] $number = Read-Host "Enter a number"
if ($number -lt 3){
Write-Host "Number is too low."
break
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…