2015-09-04 1 views
0

Я все еще новичок в 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? пожалуйста, исправьте меня и помогите мне понять этот код.

ответ

2

Вы увеличиваете $ i до того, как сделаете свою условную проверку; в то время как; это должно быть сделано после вашего заявления о нарушении. Хотя $ i устанавливается в 0, прежде чем вы начнете свой цикл, вы сразу увеличите на 1 с помощью своего оператора $ i ++; таким образом, когда $ var равно 10, $ i, которое равно 0, не становится 0 + 1 = 1 и так далее.

Смежные вопросы