带有附加变量和中断的 Powershell foreach 循环
Powershell foreach loop with additional variable and 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 $var
= 10,因此 $i
= 3 $var
= 40?请纠正我并帮助我理解这段代码
您在进行条件检查之前递增 $i;然而;它应该在你的 break 声明之后完成。尽管在开始循环之前 $i 被设置为 0,但是您在语句 $i++; 中立即递增 1;因此,当 $var 为 10 时,原本为 0 的 $i 不会变成 0+1=1 等等。
我对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 $var
= 10,因此 $i
= 3 $var
= 40?请纠正我并帮助我理解这段代码
您在进行条件检查之前递增 $i;然而;它应该在你的 break 声明之后完成。尽管在开始循环之前 $i 被设置为 0,但是您在语句 $i++; 中立即递增 1;因此,当 $var 为 10 时,原本为 0 的 $i 不会变成 0+1=1 等等。