Paras vastaus
Kuinka poistun foreach-silmukasta PowerShellissä?
Ellet ohita ääretöntä -objektien lukumäärä silmukkaan, kukin -silmukka lopettaa itsensä kerran, kun jokainen -objektista käsitellään.
kohteelle kukin ( $ obj kohteessa $ array)
Voit lopettaa sen ennenaikaisesti ehdollisella logiikalla sisään silmukan prosessi. Esimerkiksi jos objekti vastaa ehtoa, katkaise silmukka.
[bool[]]$array
foreach($obj in $array)
{
if ($obj -eq $false)
{
break
}
else
{
#do something
}
}
Muut silmukatyypit, kuten silmukoille ja do-while / do-till -silmuille, ovat paljon alttiimpia juoksulle loputtomasti huonojen init-parametrien vuoksi.
Powershell-opetusohjelma – Luo loputon silmukka ja välttää puhelun syvyyden ylivuoto – Vexasoft
Vastaa
Käytät tauko `, esim .:
foreach ($val in $vals) {
if ($val -eq 10) {
break
}
}