我仍然是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?请纠正我并帮助我理解这段代码
答案 0 :(得分:2)
在进行有条件检查之前,您正在增加$ i;然而,它应该在你的休息声明之后完成。尽管在开始循环之前将$ i设置为0,但是使用语句$ i ++立即增加1;因此,当$ var为10时,$ i为0而不是0 + 1 = 1等等。