PowerShellの罠:ForEach-Object コマンドレットでは continue は意図通り動かない

http://yukimemi.github.io/post/2013-10-19-foreach_object_continue/
forやwhileで利用する continue は、ForEach-Objectに渡したブロック内で利用しても意図通り動作しない。

# breakは意図通り動く
PS> 1..5 | ForEach-Object { if ($_ -eq 3) { break; } echo $_; }
1
2

# continueはbreakと同じ動きになってしまう
PS> 1..5 | ForEach-Object { if ($_ -eq 3) { continue; } echo $_; }
1
2

# returnを使うとcontinueで意図した動きができる
PS> 1..5 | ForEach-Object { if ($_ -eq 3) { return; } echo $_; }
1
2
4
5