2012-03-23 28 views

Trả lời

15

continuebreak có nghĩa là cho vòng lặp và foreach-object là một lệnh ghép ngắn. Hành vi này không thực sự là những gì bạn mong đợi, vì nó chỉ dừng toàn bộ tập lệnh (thêm một câu lệnh sau mã gốc và bạn sẽ thấy rằng câu lệnh đó không chạy)

Để có được hiệu ứng tương tự như tiếp tục được sử dụng trong một vòng lặp foreach, bạn có thể sử dụng return:

$arr = @(1..10) 
$arr | ForEach-Object { 
    if ($_ -eq 5){ return} 
    "output $_" 
} 
5

đó là vì sự tiếp tục được áp dụng cho vòng lặp foreach (foreach $ item trong $ sưu tập) và không có trong foreach đối tượng lệnh. thử này:

$arr = @(1..10) 
$arr | ForEach-Object { 
    if ($_ -eq 5){ return} 
    "output $_" 
} 

và điều này:

$arr = @(1..10) 
ForEach ($i in $arr) { 
    if ($i -eq 5){ continue} 
    "output $i" 
} 
Các vấn đề liên quan