break và continue
1. break - thoát khỏi vòng lặp
Phần tiêu đề “1. break - thoát khỏi vòng lặp”break kết thúc ngay lập tức vòng lặp chứa nó, bỏ qua toàn bộ các lần lặp còn lại:
for (int i = 1; i <= 10; i++) { if (i == 5) { break; // thoát vòng lặp ngay khi i == 5 } System.out.println(i);}// In ra: 1 2 3 4 (dừng hẳn khi gặp break, không in 5, 6, ...)Thường dùng để tìm kiếm và dừng ngay khi tìm thấy kết quả, tránh duyệt thừa:
int[] numbers = {4, 8, 15, 16, 23, 42};int target = 15;
for (int i = 0; i < numbers.length; i++) { if (numbers[i] == target) { System.out.println("Tìm thấy tại vị trí " + i); break; // không cần duyệt tiếp sau khi đã tìm thấy }}2. continue - bỏ qua lần lặp hiện tại
Phần tiêu đề “2. continue - bỏ qua lần lặp hiện tại”continue bỏ qua phần còn lại của lần lặp hiện tại, nhảy thẳng đến lần lặp tiếp theo (không thoát hẳn vòng lặp như break):
for (int i = 1; i <= 10; i++) { if (i % 2 == 0) { continue; // bỏ qua các số chẵn } System.out.println(i);}// In ra: 1 3 5 7 93. So sánh break và continue
Phần tiêu đề “3. So sánh break và continue”break |
continue |
|
|---|---|---|
| Tác động | Thoát hẳn vòng lặp | Bỏ qua lần lặp hiện tại, tiếp tục lần sau |
| Dùng khi | Đã tìm được kết quả, không cần lặp tiếp | Muốn bỏ qua một số trường hợp cụ thể nhưng vẫn tiếp tục lặp |
4. Với vòng lặp lồng nhau
Phần tiêu đề “4. Với vòng lặp lồng nhau”Mặc định, break/continue chỉ tác động đến vòng lặp trong cùng chứa nó. Muốn tác động đến vòng lặp ngoài, dùng nhãn (label) - xem chi tiết ở trang “Vòng lặp lồng nhau”:
outer:for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (j == 1) { continue outer; // bỏ qua lần lặp hiện tại của vòng lặp NGOÀI } System.out.println("i=" + i + ", j=" + j); }}Tổng kết
Phần tiêu đề “Tổng kết”break: thoát hẳn khỏi vòng lặp - không chạy tiếp lần lặp nào nữacontinue: bỏ qua phần còn lại của lần lặp hiện tại, nhảy sang lần lặp kế tiếp- Với vòng lặp lồng nhau, dùng nhãn (
outer:) đểbreak/continuetác động đến vòng lặp ngoài thay vì vòng lặp trong cùng