2015-09-04 79 views
0

我還是新來的PowerShell,現在我研究foreachbreak,我理解的概念,但是當它結合額外的變量和break;它混淆了我,這裏是代碼:Powershell foreach循環與額外的變量和打破

$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?請糾正我並幫助我理解此代碼

回答

2

在進行有條件檢查之前,您正在增加$ i;然而,它應該在你的break語句後完成。雖然$ i在開始循環之前設置爲0,但您立即用語句$ i ++遞增1;因此,當$ var是10時,$ i是0而不是0 + 1 = 1等等。