Bài 22. Hướng Dẫn Sử Dụng Vòng Lặp For-Each Trong Java | Tự Học Java Căn Bản
- Published on

Vòng lặp for-each trong Java là một cách giúp bạn duyệt qua các phần tử trong mảng hoặc danh sách mà không cần quan tâm đến chỉ mục. Đây là một cách viết ngắn gọn, giúp mã nguồn trở nên dễ đọc và tránh lỗi so với vòng lặp for
thông thường.
Trong bài viết này, chúng ta sẽ tìm hiểu cú pháp, cách hoạt động, ưu điểm, nhược điểm và các ví dụ minh họa về vòng lặp for-each trong Java.
Vòng Lặp For-Each Là Gì?
Vòng lặp for-each (hay còn gọi là enhanced for loop) là một kiểu vòng lặp đặc biệt trong Java, dùng để duyệt qua từng phần tử trong một mảng (array
) hoặc một tập hợp (Collection
).
Điểm khác biệt chính so với vòng lặp for truyền thống:
- Không cần biết kích thước mảng hoặc danh sách.
- Không cần sử dụng biến đếm (
i
). - Cú pháp đơn giản, dễ hiểu.
Cú Pháp Của Vòng Lặp For-Each Trong Java
Cú pháp của vòng lặp for-each như sau:
for (Kiểu_dữ_liệu biến_tạm : tập_hợp) {
// Khối lệnh xử lý từng phần tử
}
Giải thích:
Kiểu_dữ_liệu
là kiểu của phần tử trong tập hợp.biến_tạm
là biến dùng để lưu từng phần tử trong quá trình duyệt.tập_hợp
là mảng hoặc danh sách mà bạn muốn duyệt qua.
Ví Dụ Về Vòng Lặp For-Each
Duyệt Mảng Số Nguyên
public class ForEachExample {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
System.out.println("Giá trị: " + num);
}
}
}
Kết quả:
Giá trị: 1
Giá trị: 2
Giá trị: 3
Giá trị: 4
Giá trị: 5
Duyệt Mảng Chuỗi
public class ForEachExample {
public static void main(String[] args) {
String[] names = {"Hà", "Nam", "Lan", "Tùng"};
for (String name : names) {
System.out.println("Tên: " + name);
}
}
}
Kết quả:
Tên: Hà
Tên: Nam
Tên: Lan
Tên: Tùng
Duyệt Danh Sách (ArrayList)
import java.util.ArrayList;
public class ForEachExample {
public static void main(String[] args) {
ArrayList<String> colors = new ArrayList<>();
colors.add("Đỏ");
colors.add("Xanh");
colors.add("Vàng");
for (String color : colors) {
System.out.println("Màu: " + color);
}
}
}
Kết quả:
Màu: Đỏ
Màu: Xanh
Màu: Vàng
So Sánh Vòng Lặp For-Each Và Vòng Lặp For Thông Thường
Tiêu chí | Vòng lặp for-each | Vòng lặp for thông thường |
---|---|---|
Cách duyệt | Tự động duyệt qua từng phần tử | Duyệt bằng chỉ mục ( |
Độ dài mã nguồn | Ngắn gọn, dễ đọc | Dài hơn, phức tạp hơn |
Áp dụng cho | Mảng, danh sách | Mảng, danh sách, chuỗi |
Có thể thay đổi phần tử | ❌ Không | ✅ Có |
Truy cập chỉ mục | ❌ Không | ✅ Có |
Khi nào dùng for-each?
- Khi chỉ cần duyệt qua từng phần tử mà không cần biết chỉ mục.
- Khi không cần thay đổi giá trị của phần tử trong danh sách.
Khi nào dùng for thường?
- Khi cần biết chỉ mục của phần tử.
- Khi cần thay đổi giá trị phần tử trong mảng hoặc danh sách.
Nhược Điểm Của Vòng Lặp For-Each
Mặc dù for-each có nhiều ưu điểm, nhưng nó cũng có một số hạn chế:
-
Không thể thay đổi phần tử trong danh sách
- Khi sử dụng vòng lặp for-each, bạn không thể thay đổi giá trị của phần tử bên trong danh sách.
❌ Ví dụ lỗi:
int[] numbers = {1, 2, 3, 4, 5}; for (int num : numbers) { num = num * 2; // Thay đổi này KHÔNG có tác dụng với mảng gốc } for (int num : numbers) { System.out.println(num); // Giá trị không thay đổi }
-
Không thể duyệt ngược
- Vòng lặp for-each luôn duyệt từ đầu đến cuối, không thể duyệt ngược.
✅ Nếu muốn duyệt ngược, hãy dùng vòng lặp
for
thông thường:for (int i = numbers.length - 1; i >= 0; i--) { System.out.println(numbers[i]); }
-
Không thể bỏ qua phần tử hoặc duyệt có điều kiện
- Vòng lặp for-each duyệt tất cả phần tử, không thể bỏ qua phần tử nào theo điều kiện.
- Nếu cần bỏ qua phần tử, nên dùng vòng lặp
for
hoặcwhile
.
Tổng Kết
Vòng lặp for-each giúp mã nguồn gọn gàng hơn, nhưng không phải lúc nào cũng phù hợp. Khi cần thay đổi giá trị hoặc kiểm soát chỉ mục, bạn nên dùng vòng lặp for
truyền thống.
Bài tiếp theo: Bài 23. Cách sử dụng vòng lặp while trong lập trình Java
Bài viết mới nhất
Bài 26. Cách Sử Dụng break, continue và return Trong Java | Tự Học Java Căn Bản
Hướng dẫn cách sử dụng câu lệnh break, continue và return trong Java để kiểm soát vòng lặp và luồng thực thi chương trình hiệu quả.
Bài 25. Vòng Lặp do-while Trong Java | Tự Học Java Căn Bản
Hướng dẫn chi tiết về vòng lặp do-while trong Java, cách sử dụng, cú pháp, ví dụ minh họa và so sánh với vòng lặp while.
Bài 24. Cách Chuyển Đổi Số Từ Thập Phân Sang Nhị Phân Trong Java | Tự Học Java Căn Bản
Hướng dẫn cách chuyển đổi số từ hệ thập phân sang hệ nhị phân trong Java bằng nhiều phương pháp khác nhau, kèm theo ví dụ minh họa.
Bài 23. Cách Sử Dụng Vòng Lặp While Trong Java | Tự Học Java Căn Bản
Tìm hiểu cách sử dụng vòng lặp while trong Java với cú pháp, ví dụ thực tế và ứng dụng trong lập trình Java.
Bài viết liên quan
Bài 26. Cách Sử Dụng break, continue và return Trong Java | Tự Học Java Căn Bản
Hướng dẫn cách sử dụng câu lệnh break, continue và return trong Java để kiểm soát vòng lặp và luồng thực thi chương trình hiệu quả.
Bài 25. Vòng Lặp do-while Trong Java | Tự Học Java Căn Bản
Hướng dẫn chi tiết về vòng lặp do-while trong Java, cách sử dụng, cú pháp, ví dụ minh họa và so sánh với vòng lặp while.
Bài 24. Cách Chuyển Đổi Số Từ Thập Phân Sang Nhị Phân Trong Java | Tự Học Java Căn Bản
Hướng dẫn cách chuyển đổi số từ hệ thập phân sang hệ nhị phân trong Java bằng nhiều phương pháp khác nhau, kèm theo ví dụ minh họa.
Bài 23. Cách Sử Dụng Vòng Lặp While Trong Java | Tự Học Java Căn Bản
Tìm hiểu cách sử dụng vòng lặp while trong Java với cú pháp, ví dụ thực tế và ứng dụng trong lập trình Java.
