Vòng Lặp while (While Loop) Trong Java

Trong phần này, chúng ta sẽ tiếp tục khám phá sâu hơn về các khái niệm liên quan đến vòng lặp trong Java. Cụ thể, nội dung bao gồm: Vòng lặp while, Vòng lặp do-while, Từ khóa break và continue.

Ⅰ. Vòng lặp while

Vòng lặp while là một cấu trúc điều khiển lặp lại được sử dụng để thực hiện một khối lệnh nhiều lần chừng nào một điều kiện nhất định còn là true (đúng).

Cách thức hoạt động của vòng lặp while

↳ Đánh giá điều kiện: Biểu thức điều kiện trong while được đánh giá.

↳ Thực thi khối lệnh: Nếu điều kiện là true, các lệnh bên trong vòng lặp while sẽ được thực thi.

↳ Cập nhật giá trị: Sau khi thực thi khối lệnh, các biến liên quan (ví dụ như biến đếm) thường được cập nhật

↳ Lặp lại: Quay lại bước 1 để kiểm tra lại điều kiện.

↳ Kết thúc: Nếu điều kiện trở thành false (sai), vòng lặp while sẽ dừng.

Cách hoạt động của vòng lặp while trong Java - minh họa
Ảnh mô tả cách hoạt động của vòng lặp while.

Cấu trúc của vòng lặp while

Cấu trúc

while (điều_kiện) {
    // Khối lệnh cần lặp
  }

Giải thích các thành phần:

↳ điều_kiện: Biểu thức điều kiện phải trả về giá trị true hoặc false..

Khối lệnh bên trong vòng lặp sẽ được thực thi lặp đi lặp lại chừng nào điều_kiện còn là true.

Ví dụ: Example.java

public class Example {
    public static void main(String[] args){
        int count = 1;
        while (count < 10) {
            System.out.println("số đếm: " + count);
            count++;
        }
    }
}

Kết quả của chương trình là:

số đếm: 1
số đếm: 2
số đếm: 3
số đếm: 4
số đếm: 5
số đếm: 6
số đếm: 7
số đếm: 8
số đếm: 9

Vòng lặp vô hạn với while

Bạn có thể tạo một vòng lặp vô hạn bằng câu lệnh while như sau:

Cấu trúc

while (true){
    // mã của bạn ở đây
}

Ví dụ: Example.java

public class Example {
    public static void main(String[] args){
        while (true) {
            System.out.println("Vòng Lặp Vô Hạn Với while"); 
            System.out.println("Bấm Ctrl + C để dừng vòng lặp"); 
        }
    }
}

Kết quả của chương trình là:

Vòng Lặp Vô Hạn Với while
Bấm Ctrl + C để dừng vòng lặp
Vòng Lặp Vô Hạn Với while
Bấm Ctrl + C để dừng vòng lặp
.....

Ⅱ. Vòng lặp do-while

Vòng lặp do-while cũng lặp lại một khối lệnh dựa trên điều kiện, nhưng điểm khác biệt là khối lệnh sẽ luôn được thực thi ít nhất một lần, ngay cả khi điều kiện ban đầu là false. Sự khác biệt giữa do-while và while là do-while đánh giá biểu thức ở cuối vòng lặp thay vì ở đầu. Do đó, các câu lệnh trong khối do luôn được thực thi ít nhất một lần.

Cách hoạt động của vòng lặp do-while trong Java - minh họa
Ảnh mô tả cách hoạt động của vòng lặp do-while.

Cấu trúc của vòng lặp do-while

Cấu trúc

do {
    // Khối lệnh cần lặp
  } while (điều_kiện);

Giải thích các thành phần:

↳ Giống như while, điều_kiện phải là biểu thức trả về true hoặc false.

↳ Khối lệnh bên trong sẽ được thực thi ít nhất một lần.

↳ Sau đó, điều_kiện được kiểm tra. Nếu true, khối lệnh tiếp tục lặp. Nếu false, vòng lặp kết thúc.

Ví dụ: Example.java

public class Example {
    public static void main(String[] args){
        // Khởi tạo biến đếm count với giá trị ban đầu là 11
        int count = 11;
        
        // Bắt đầu vòng lặp do-while
        do {
            // In ra giá trị hiện tại của count
            System.out.println("Số đếm: " + count);
            // Tăng giá trị của count lên 1
            count++;
        // Kiểm tra điều kiện của vòng lặp: tiếp tục lặp nếu count nhỏ hơn 10
        } while (count < 10); 
        // Vì count bắt đầu từ 11, điều kiện count < 10 là sai, nên vòng lặp chỉ chạy một lần
    }
}

Kết quả của chương trình là:

Số đếm: 11

Kết luận:

↳ while: Kiểm tra điều kiện trước, nếu đúng thì thực hiện khối lệnh và lặp lại cho đến khi điều kiện sai.

↳ do-while: Thực hiện khối lệnh ít nhất một lần, sau đó kiểm tra điều kiện và lặp lại nếu điều kiện đúng.

Trong Java, hai từ khóa break và continue thường được sử dụng trong các cấu trúc vòng lặp (for, while, do-while) và cấu trúc điều khiển rẽ nhánh (switch) để điều khiển luồng của chương trình.

Ⅲ. Từ khóa break

Từ khóa break được sử dụng để thoát ra khỏi vòng lặp ngay lập tức, bất kể điều kiện của vòng lặp có còn thỏa mãn hay không. Nó cũng có thể được sử dụng để thoát khỏi switch statement.

Ví dụ: Example.java

public class Example {
    public static void main(String[] args){
        for (int i = 0; i < 10; i++) {
            if (i == 5) {
                break; // Thoát khỏi vòng lặp khi i = 5
            }
            System.out.println(i);
        }   
    }
}

Kết quả của chương trình là:

0
1
2
3
4

Trong ví dụ trên, vòng lặp for sẽ dừng lại ngay khi giá trị của i là 5 do câu lệnh break.

Ⅳ. Từ khóa continue

Từ khóa continue được sử dụng để bỏ qua phần còn lại của vòng lặp hiện tại và chuyển sang lần lặp tiếp theo. Trong vòng lặp for, continue khiến bộ đếm vòng lặp tăng lên và kiểm tra điều kiện vòng lặp một lần nữa; trong vòng lặp while và do-while, nó kiểm tra điều kiện của vòng lặp ngay lập tức.

Ví dụ: Example.java

class Example {
    public static void main(String[] args) {
        // Bắt đầu vòng lặp for, biến i bắt đầu từ 0 và tăng lên đến 9
        for (int i = 0; i < 10; i++) {
            // Kiểm tra nếu i bằng 5
            if (i == 5) {
                // Bỏ qua qua không tính giá trị 5 và chuyển sang lần lặp tiếp theo
                continue;
            }
            // In ra giá trị của i
            System.out.println(i);
        }
    }
}

Kết quả của chương trình là:

0
1
2
3
4
6
7
8
9

Như bạn thấy, giá trị 5 không được in ra vì khi i bằng 5, câu lệnh continue làm bỏ qua phần còn lại của vòng lặp và chuyển sang lần lặp tiếp theo.

Lưu ý:

↳ Sử dụng break cẩn thận để tránh thoát khỏi vòng lặp hoặc khối lệnh không mong muốn.

↳ Sử dụng continue khi cần bỏ qua một số phần tử trong vòng lặp và thực hiện các phần tử tiếp theo.

↳ Nên sử dụng vòng lặp và cấu trúc điều khiển hợp lý để tránh lạm dụng break và continue.

So sánh vòng lặp for, while và do-while trong Java

Vòng lặp là một cấu trúc điều khiển lặp lại một khối lệnh nhiều lần cho đến khi một điều kiện nhất định được đáp ứng. Java cung cấp ba loại vòng lặp chính: for, while và do-while. Mỗi loại có những ưu điểm và nhược điểm riêng, phù hợp cho các trường hợp sử dụng khác nhau. Dưới đây là bảng so sánh sự khác nhau của ba vòng lặp này:

Đặc điểmVòng lặp forVòng lặp whileVòng lặp do-while
Kiểm tra điều kiệnTrước khi vào vòng lặpTrước khi vào vòng lặpSau khi thực hiện ít nhất một lần
Số lần lặpBiết trướcKhông biết trướcKhông biết trước
Thực thi ít nhất 1 lầnKhôngKhông
Sử dụng phổ biếnKhi số lần lặp biết trướcKhi số lần lặp không biết trướcKhi muốn thực thi ít nhất một lần

Khi nào sử dụng:

↳ for: Khi bạn biết trước số lần lặp và cần thực hiện một khối mã nhiều lần với biến lặp tăng dần hoặc giảm dần.

↳ while: Khi bạn không biết trước số lần lặp và việc lặp lại phụ thuộc vào một điều kiện nhất định.

↳ do-while: Khi bạn cần đảm bảo rằng khối mã sẽ được thực hiện ít nhất một lần bất kể điều kiện ban đầu.

Câu Nói Truyền Cảm Hứng

“Bắt đầu ở đâu không quan trọng, quan trọng là bạn sẵn sàng bắt đầu.” – W. Clement Stone

Không Gian Tích Cực

“Chúc bạn luôn giữ vững niềm tin và sức mạnh để vượt qua mọi thử thách trong cuộc sống.”