Trong lập trình, việc lặp đi lặp lại một chuỗi thao tác là công việc diễn ra rất thường xuyên. Nếu không có vòng lặp, bạn sẽ phải chép đi chép lại hàng chục, hàng trăm dòng code trùng lặp. Bài viết này sẽ hướng dẫn bạn cách tự động hóa những công việc lặp lại đó thông qua các loại vòng lặp cơ bản trong Java: for, while và do-while.
1. Vòng Lặp For: Khi Biết Trước Số Lần Lặp
Vòng lặp for thường được ưu tiên sử dụng khi bạn đã biết rõ số lần cần lặp lại một khối lệnh (ví dụ: lặp 10 lần, duyệt qua các phần tử của một danh sách có kích thước cố định).
Cú pháp cơ bản
for (khởi_tạo; điều_kiện; cập_nhật) {
// Khối lệnh được thực thi mỗi lần lặp
}- Khởi tạo: Thực thi một lần duy nhất khi vòng lặp bắt đầu (ví dụ:
int i = 1). - Điều kiện: Biểu thức logic (trả về
truehoặcfalse). Nếutrue, khối lệnh bên trong sẽ chạy; nếufalse, vòng lặp dừng lại. - Cập nhật: Chạy sau mỗi lần khối lệnh được thực thi xong để thay đổi biến đếm (ví dụ:
i++).
Ví dụ: In danh sách số từ 1 đến 5
public class ForLoopExample {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
System.out.println("Lần lặp thứ: " + i);
}
}
}2. Vòng Lặp While: Kiểm Tra Điều Kiện Trước Khi Lặp
Vòng lặp while thích hợp cho các tình huống bạn chưa biết trước chính xác số lần lặp, nhưng biết rõ điều kiện để vòng lặp tiếp tục chạy.
Cú pháp
while (điều_kiện) {
// Khối lệnh thực thi
}Trước khi chạy khối lệnh, Java sẽ kiểm tra điều_kiện. Nếu điều kiện thỏa mãn (true), khối lệnh mới được thực thi. Nếu điều kiện sai ngay từ đầu, vòng lặp sẽ không chạy lần nào.
Ví dụ: Nhập liệu hoặc lặp theo điều kiện
public class WhileLoopExample {
public static void main(String[] args) {
int count = 1;
while (count <= 3) {
System.out.println("Đang xử lý bước: " + count);
count++; // Lưu ý cập nhật biến điều kiện để tránh vòng lặp vô hạn
}
}
}3. Vòng Lặp Do-While: Thực Thi Ít Nhất Một Lần
Vòng lặp do-while là biến thể của while, nhưng có một điểm đặc trưng: kiểm tra điều kiện sau khi thực thi. Khối code bên trong luôn chạy ít nhất một lần dù điều kiện ban đầu có là false.
Cú pháp
do {
// Khối lệnh thực thi
} while (điều_kiện);Ví dụ: Hiển thị menu cho người dùng
Vòng lặp do-while rất phù hợp để xây dựng giao diện Menu Console, nơi bạn muốn hiển thị các lựa chọn cho người dùng trước, sau đó mới kiểm tra lựa chọn của họ để quyết định có tiếp tục hay dừng lại.
import java.util.Scanner;
public class DoWhileExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int choice;
do {
System.out.println("--- MENU ---");
System.out.println("1. Bắt đầu");
System.out.println("0. Thoát");
System.out.print("Lựa chọn của bạn: ");
choice = scanner.nextInt();
} while (choice != 0);
System.out.println("Đã thoát chương trình.");
}
}4. Điều Điển Luồng Lặp Với Break Và Continue
Trong quá trình lặp, đôi khi bạn cần can thiệp để dừng vòng lặp sớm hoặc bỏ qua một vài bước lặp cụ thể.
- break: Lập tức thoát khỏi vòng lặp hiện tại.
- continue: Bỏ qua phần mã còn lại của lần lặp hiện tại và chuyển ngay sang lần lặp kế tiếp.
public class BreakContinueExample {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue; // Bỏ qua lượt i = 3, không in ra
}
if (i == 5) {
break; // Dừng vòng lặp khi i = 5
}
System.out.println("Giá trị i: " + i);
}
}
}5. So Sánh Nhanh Và Lưu Ý Tránh Vòng Lặp Vô Hạn
| Loại vòng lặp | Đặc điểm chính | Trường hợp dùng phù hợp |
|---|---|---|
| for | Kiểm tra trước, có biến đếm rõ ràng | Biết trước số lần lặp cụ thể. |
| while | Kiểm tra trước | Không biết trước số lần lặp, lặp theo điều kiện. |
| do-while | Kiểm tra sau, chạy ít nhất 1 lần | Xác thực dữ liệu đầu vào, hiển thị Menu. |
Lưu ý quan trọng: Khi viết vòng lặpwhilehoặcdo-while, luôn bảo đảm biến điều kiện được cập nhật bên trong thân vòng lặp. Nếu thiếu bước này, điều kiện sẽ luôntruevà gây ra lỗi vòng lặp vô hạn (infinite loop).
Kết luận
Hiểu và nắm vững cách hoạt động của for, while và do-while giúp bạn làm chủ luồng điều khiển trong Java. Việc lựa chọn đúng loại vòng lặp không chỉ giúp code trở nên ngắn gọn, dễ đọc mà còn giúp tối ưu hóa hiệu năng chương trình.
Nguồn tham khảo
- Vòng lặp do-while trong Java được giải thích: Cú pháp, Sự khác biệt so với while, Ví dụ và Những lỗi thường gặp - Deep Java
- Vòng lặp trong Java (phần 3)
- Vòng lặp trong Java (phần 1)
- Vòng lặp while và do...while trong JavaScript - Cùng nhau học lập trình Frontend 🚀
- Vòng lặp for, while và do...while trong ngôn ngữ lập trình C
Nhận xét
Đăng nhận xét