desiderato:
foreach (int number in numbers) // <--- go back to here --------+
{ // |
if (number < 0) // |
{ // |
continue; // Skip the remainder of this iteration. -----+
}
// do work
}
Ecco di più sul continue
keyword.
Aggiornamento: In risposta alla domanda di follow-up di Brian nei commenti:
Potrebbe chiarire ulteriormente che cosa avrei fatto se avessi annidati per i loop, e ha voluto ignorare l'iterazione di uno di quelli estesi?
for (int[] numbers in numberarrays) {
for (int number in numbers) { // What to do if I want to
// jump the (numbers/numberarrays)?
}
}
Un continue
applica sempre alla portata racchiude vicina, quindi non si poteva usare per spezzare il ciclo più esterno. Se si verifica una condizione come questa, è necessario fare qualcosa di più complicato a seconda esattamente di ciò che si desidera, ad esempio break
dal ciclo interno, quindi continue
sul ciclo esterno. Vedi qui per la documentazione sullo break
keyword. La parola chiave C# break
è simile alla parola chiave Perl last
.
Inoltre, prendere in considerazione il suggerimento di Dustin per filtrare i valori semplicemente non si desidera elaborare in anticipo:
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.
}
}
fonte
2009-03-17 13:00:10
Notificare all'utente con il loro input non valido è importante quanto ignorarlo! – usefulBee