que desee:
foreach (int number in numbers) // <--- go back to here --------+
{ // |
if (number < 0) // |
{ // |
continue; // Skip the remainder of this iteration. -----+
}
// do work
}
Aquí hay más información sobre el continue
keyword.
Actualización: En respuesta a la pregunta de seguimiento de Brian en los comentarios:
Podría aclarar aún más de lo que haría si hubiera anidado para los bucles, y quería saltar la iteración de uno de los extendidos?
for (int[] numbers in numberarrays) {
for (int number in numbers) { // What to do if I want to
// jump the (numbers/numberarrays)?
}
}
Un continue
siempre se aplica al ámbito de inclusión más cercano, por lo que no se podría utilizar para salir del bucle más externo. Si surge una condición así, necesitarás hacer algo más complicado dependiendo de exactamente lo que quieras, como break
desde el lazo interno, luego continue
en el lazo externo. Vea aquí la documentación en el break
keyword. La palabra clave break
C# es similar a la palabra clave Perl last
.
Además, considerar la adopción de la sugerencia de Dustin simplemente filtrar los valores que no desea procesar de antemano:
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.
}
}
¡Avisar al usuario con su mala información es tan importante como omitirla! – usefulBee