Vòng Lặp For, While Và Do-While Trong Java: Tự Động Hóa Công Việc Lặp Lại

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.

Minh họa cấu trúc các loại vòng lặp For, While và Do-While trong Java
Ảnh minh họa: Vòng lặp trong Java (phần 3)

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ề true hoặc false). Nếu true, khối lệnh bên trong sẽ chạy; nếu false, 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ínhTrường hợp dùng phù hợp
forKiểm tra trước, có biến đếm rõ ràngBiết trước số lần lặp cụ thể.
whileKiểm tra trướcKhông biết trước số lần lặp, lặp theo điều kiện.
do-whileKiểm tra sau, chạy ít nhất 1 lầnXác thực dữ liệu đầu vào, hiển thị Menu.
Lưu ý quan trọng: Khi viết vòng lặp while hoặc do-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ôn true và 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


📚 Chuỗi bài: Lộ Trình Tự Học Java Từ Con Số 0 Đến Ứng Dụng Thực Tế

Chuỗi 20 bài viết thiết kế dạng 'cầm tay chỉ việc' dành riêng cho người mới bắt đầu học lập trình Java. Lộ trình đi từ tư duy nền tảng, cú pháp cơ bản, lập trình hướng đối tượng (OOP) cho đến hoàn thiện một dự án thực tế nhỏ.

  1. 1. Java Là Giống Gì? Cài Đặt Environment (JDK & IntelliJ IDEA) Cực Nhanh
  2. 2. Giải Mã Chương Trình 'Hello World' Và Cấu Trúc Cơ Bản Của Bài Code Java
  3. 3. Biến Và Kiểu Dữ Liệu Trong Java: Cách Lưu Trữ Thông Tin Đúng Chuẩn
  4. 4. Toán Tử Trong Java: Hướng Dẫn Tính Toán Và So Sánh Chi Tiết
  5. 5. Nhập Xuất Dữ Liệu Với Scanner: Làm Cho Chương Trình Biết Tương Tác
  6. 6. Cấu Trúc Điều Kiện If-Else Và Switch-Case: Dạy Máy Tính Rẽ Nhánh Tư Duy
  7. 7. Vòng Lặp For, While Và Do-While Trong Java: Tự Động Hóa Công Việc Lặp Lại ← Bạn đang đọc
  8. 8. Phương Thức (Method) Trong Java: Tái Sử Dụng Code Một Cách Thông Minh
  9. 9. Mảng Một Chiều (Array) Trong Java: Quản Lý Danh Sách Dữ Liệu Đơn Giản
  10. 10. Bài 10: Xử Lý Chuỗi Dữ Liệu Với String Và StringBuilder Trong Java
  11. 11. Lập Trình Hướng Đối Tượng (OOP): Lớp (Class) Và Đối Tượng (Object) Là Đâu?
  12. 12. Tính Đóng Gói (Encapsulation) Và Access Modifiers: Bảo Vệ Dữ Liệu Safe 100%
  13. 13. Tính Kế Thừa (Inheritance): Tái Sử Dụng Mã Nguồn Với Từ Khóa Extends
  14. 14. Tính Đa Hình (Polymorphism): Nạp Chồng (Overloading) Và Ghi Đè (Overriding)
  15. 15. Lộ Trình Tự Học Java: Tính Trừu Tượng (Abstraction) - Abstract Class Hay Interface?
  16. 16. Xử Lý Ngoại Lệ (Exception Handling): Giúp Chương Trình Không Bị 'Sập' Đột Ngột
  17. 17. Java Collections Framework: Làm Quen Mảng Cố Định Với ArrayList
  18. 18. Lưu Trữ Cặp Dữ Liệu Key-Value Cực Kỳ Nhanh Với HashMap
  19. 19. Đọc Và Ghi File Trong Java: Lưu Trữ Dữ Liệu Lâu Dài Vào Ổ Cứng
  20. 20. Dự Án Thực Tế: Xây Dựng Ứng Dụng Quản Lý Sinh Viên Console Hoàn Chỉnh

← Bài trước: Cấu Trúc Điều Kiện If-Else Và Switch-Case: Dạy Máy Tính Rẽ Nhánh Tư Duy Bài tiếp theo: Phương Thức (Method) Trong Java: Tái Sử Dụng Code Một Cách Thông Minh →

Nhận xét