带有附加变量和中断的 Powershell foreach 循环

Powershell foreach loop with additional variable and break

我对powershell还是个新手,现在我研究foreachbreak,我理解这个概念,但是当它与附加变量和break结合时;这让我很困惑,这是代码:

$i=0
$varZ = (10,20,30,40)
foreach ($var in $varZ)
{
    $i++
    if ($var -eq 30)
    {
        break
    }
}
Write-Host "30 was found in array position $i"

我得到的结果显示变量 $i = 3,其中 $var = 30 但让我感到困惑的是,据我所知,$i 以 0 开头,并且有一个数组 $varZ (10,20,30,40),据我所知,当 $i = 0 $var = 10,因此 $i = 3 $var = 40?请纠正我并帮助我理解这段代码

您在进行条件检查之前递增 $i;然而;它应该在你的 break 声明之后完成。尽管在开始循环之前 $i 被设置为 0,但是您在语句 $i++; 中立即递增 1;因此,当 $var 为 10 时,原本为 0 的 $i 不会变成 0+1=1 等等。