我有一个简单的程序,可以在其中执行某些操作。但是我在代码的这个特定部分有问题,用户应该输入一个数字,然后再进行处理:
do{
$user = Read-Host "Input some number from 1 to 3"
if($user -lt 1 -or $user -gt 3){
echo "From 1 to 3, $user is too many"}
else{
// do the right thing }}
until(it's done)
但是,当用户输入其上的数字的开始被1或2任一开始(如数量1256
,25698
等),异常不触发。它可以完美地处理其他数字,但这些都是不好的。
问题是您要捕获$ user作为字符串,然后将其作为字符串比较进行测试(在上面显示的条件下成功)。
如果将变量指定为[int]$user
,它将成功检查以1-3开头的数字。
示例代码:
do{
[int]$user = Read-Host "Input a number from 1 to 3"
if($user -lt 1 -or $user -gt 3) {
echo "Please input a number between 1 and 3, $user is too high"
}
else {
Write-Host "$user is within bounds"
}
}
until($condition -eq $true)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句