Vous voulez :
foreach (int number in numbers) // <--- go back to here --------+
{ // |
if (number < 0) // |
{ // |
continue; // Skip the remainder of this iteration. -----+
}
// do work
}
Voici plus d'informations sur le continue
mot-clé .
Mise à jour : En réponse à la question de suivi de Brian dans les commentaires :
Pourriez-vous préciser ce que je devrais faire si j'avais des boucles for imbriquées et que je voulais sauter l'itération de l'une des boucles étendues ?
for (int[] numbers in numberarrays) {
for (int number in numbers) { // What to do if I want to
// jump the (numbers/numberarrays)?
}
}
A continue
s'applique toujours à l'étendue la plus proche, de sorte que vous ne pouvez pas l'utiliser pour sortir de la boucle la plus extérieure. Si une telle condition se produit, vous devrez faire quelque chose de plus compliqué en fonction de ce que vous voulez exactement, comme break
de la boucle interne, alors continue
sur la boucle extérieure. Voir ici pour la documentation sur le break
mot-clé . Le site break
Le mot clé C# est similaire au mot clé Perl last
mot-clé.
En outre, envisagez de suivre la suggestion de Dustin de simplement filtrer les valeurs que vous ne souhaitez pas traiter au préalable :
foreach (var basket in baskets.Where(b => b.IsOpen())) {
foreach (var fruit in basket.Where(f => f.IsTasty())) {
cuteAnimal.Eat(fruit); // Om nom nom. You don't need to break/continue
// since all the fruits that reach this point are
// in available baskets and tasty.
}
}
0 votes
Il est tout aussi important d'avertir l'utilisateur de sa mauvaise saisie que de l'ignorer !