Powershell - 具有多个条件的循环
Powershell - for loop with multiple conditions
我正在尝试创建一个 for 循环,该循环在满足 2 个条件中的 1 个条件后结束。
我不知道我错过了什么,但我猜这两个条件之间只有一个条件似乎是“有效”的“-or”。 $i 的值为 3 后,下面的 for 循环是否也应该退出??
代码如下:
$test = "test"
$expected = "successful"
for($i = 0; ($i -lt 3) -or ($test -ne $expected); ($i++) -and (sleep 1)){
if($i -eq 5){
$test = $expected
}
$test
$i
}
这是我的输出:
测试
0
测试
1个
测试
2个
测试
3个
测试
4个
成功的
5
Should the following for-loop not also quit after the value of $i
is 3?
为什么要这样做? ($test -ne $expected)
仍然是 $true
,并且您已指示 PowerShell 继续循环,只要 ($i -lt 3)
或 ($test -ne $expected)
为真.
更改循环条件以改用 -and
运算符:
for($i = 0; ($i -lt 3) -and ($test -ne $expected); ($i++) -and (sleep 1))
假设您希望 sleep 1
语句执行而不考虑 $i
的值,请将最后一部分更改为 而不是 使用 -and
太:
for($i = 0; ($i -lt 3) -and ($test -ne $expected); ($i++;sleep 1)){
我正在尝试创建一个 for 循环,该循环在满足 2 个条件中的 1 个条件后结束。
我不知道我错过了什么,但我猜这两个条件之间只有一个条件似乎是“有效”的“-or”。 $i 的值为 3 后,下面的 for 循环是否也应该退出??
代码如下:
$test = "test"
$expected = "successful"
for($i = 0; ($i -lt 3) -or ($test -ne $expected); ($i++) -and (sleep 1)){
if($i -eq 5){
$test = $expected
}
$test
$i
}
这是我的输出:
测试 0 测试 1个 测试 2个 测试 3个 测试 4个 成功的 5
Should the following for-loop not also quit after the value of
$i
is 3?
为什么要这样做? ($test -ne $expected)
仍然是 $true
,并且您已指示 PowerShell 继续循环,只要 ($i -lt 3)
或 ($test -ne $expected)
为真.
更改循环条件以改用 -and
运算符:
for($i = 0; ($i -lt 3) -and ($test -ne $expected); ($i++) -and (sleep 1))
假设您希望 sleep 1
语句执行而不考虑 $i
的值,请将最后一部分更改为 而不是 使用 -and
太:
for($i = 0; ($i -lt 3) -and ($test -ne $expected); ($i++;sleep 1)){