DO-UNTIL循环不确定



这是一个非常简单的代码

do {
       $size = Read-Host -Prompt "Enter a value "
} 
until ( $size -gt 39 )

对于介于100和390之间的值,它进入无限循环,但对于低于99和高于390的值,效果非常好。

无限循环,即使值超过39

Enter a value : 38
Enter a value : 37
Enter a value : 100
Enter a value : 110
Enter a value : 200
Enter a value : 300
Enter a value : 390

将值更改为大于49

do {
    $size = Read-Host -Prompt "Enter a value "
} 
until ( $size -gt 49 ) 

现在的范围是49到490

我做错什么了吗?powershell版本为3.0.1-1

问题是,您似乎是在作为字符串而不是整数进行比较,所以虽然100在数字上大于39,但在字母顺序上小于30。要修复此问题,您可以强制转换为如下整数:

do {
   $size = Read-Host -Prompt "Enter a value "
} 
until ( [int]$size -gt [int]39 )

相关内容

最新更新