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)){