Powershell foreach循环带有额外的变量和中断

时间:2015-09-04 16:27:16

标签: arrays powershell foreach iteration break

我仍然是PowerShell的新手,现在我用foreach学习break,我理解这个概念,但是当它与其他变量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 {{1 }} = 10,因此$var = 3 $i = 40?请纠正我并帮助我理解这段代码

1 个答案:

答案 0 :(得分:2)

在进行有条件检查之前,您正在增加$ i;然而,它应该在你的休息声明之后完成。尽管在开始循环之前将$ i设置为0,但是使用语句$ i ++立即增加1;因此,当$ var为10时,$ i为0而不是0 + 1 = 1等等。