Bạn muốn:
foreach (int number in numbers) // <--- go back to here --------+
{ // |
if (number < 0) // |
{ // |
continue; // Skip the remainder of this iteration. -----+
}
// do work
}
Đây là nhiều hơn về continue
từ khóa .
Cập nhật: Trả lời câu hỏi tiếp theo của Brian trong các bình luận:
Bạn có thể làm rõ hơn những gì tôi sẽ làm nếu tôi đã lồng vào các vòng lặp và muốn bỏ qua việc lặp lại một trong những vòng mở rộng?
for (int[] numbers in numberarrays) {
for (int number in numbers) { // What to do if I want to
// jump the (numbers/numberarrays)?
}
}
A continue
luôn áp dụng cho phạm vi bao quanh gần nhất, vì vậy bạn không thể sử dụng nó để thoát ra khỏi vòng lặp ngoài cùng. Nếu một điều kiện như vậy phát sinh, bạn cần phải làm một cái gì đó phức tạp hơn tùy thuộc vào chính xác những gì bạn muốn, như break
từ vòng lặp bên trong, sau đó continue
vào vòng lặp bên ngoài. Xem ở đây để các tài liệu về break
từ khóa . Các break
C # từ khóa tương tự như Perl last
từ khóa.
Ngoài ra, hãy xem xét lấy đề xuất của Dustin để chỉ lọc ra các giá trị bạn không muốn xử lý trước:
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.
}
}