CodeGym /Các khóa học /JAVA 25 SELF /Vòng lặp do-while: giới thiệu và các lưu ý khi sử dụng

Vòng lặp do-while: giới thiệu và các lưu ý khi sử dụng

JAVA 25 SELF
Mức độ , Bài học
Có sẵn

1. Làm quen với vòng lặp do-while

Hãy tưởng tượng: bạn viết một chương trình đoán số mà người dùng nghĩ đến. Bạn cần hỏi số đó ít nhất một lần và lặp lại yêu cầu cho đến khi đoán đúng. Nếu kiểm tra điều kiện trước, while thông thường có thể không vào vòng lặp chút nào.

Khi đó do-while giúp ích. Khác với while, nó luôn thực thi thân vòng lặp ít nhất một lần — ngay cả khi điều kiện ngay từ đầu là sai. Giống như bạn luôn nhận được kẹo cao su ở quầy thu ngân, bất kể có mua hàng hay không.

Cú pháp do-while

Mọi thứ rất đơn giản: thêm một “cặp” từ khóa nữa trong Java.


do
{
    // Thân vòng lặp: đoạn mã này sẽ chạy ít nhất một lần
}
while (uslovie);
Cú pháp của vòng lặp do-while

Hãy chú ý dấu chấm phẩy ; ở cuối sau ngoặc của điều kiện! Với while thông thường thì không có, còn ở đây thì có — chiếc bẫy kinh điển cho người mới.

Mô tả các bước của vòng lặp do-while

  1. Vào thân vòng lặp (luôn ít nhất một lần).
  2. Kiểm tra điều kiện.
  3. Nếu điều kiện đúng — lặp lại thân.
  4. Nếu điều kiện sai — thoát khỏi vòng lặp.

2. Khác biệt so với while thông thường

Hãy nhớ lại cách hoạt động cơ bản của while thông thường:

while (uslovie)
{
    // Thân vòng lặp
}

Thân sẽ không chạy lần nào nếu điều kiện sai ngay từ đầu!

Bây giờ là ví dụ với do-while:

do
{
    // Thân vòng lặp
}
while (uslovie);

Thân vòng lặp sẽ chạy ít nhất một lần, ngay cả khi điều kiện sai ngay lập tức!

Hãy minh họa sự khác biệt bằng mã:

// while thông thường
int count = 0;
while (count > 0)
{
    System.out.println("count = " + count);
    count--;
}
// Sẽ không in gì cả

// do-while
int count2 = 0;
do
{
    System.out.println("count2 = " + count2);
    count2--;
}
while (count2 > 0);
// Sẽ in "count2 = 0", dù điều kiện là sai!

Đôi khi điều này có vẻ “kỳ lạ”, nhưng chính hành vi đó lại rất cần thiết khi xử lý nhập liệu của người dùng và xác thực dữ liệu.

3. Tình huống thực tế khi dùng do-while

Vòng lặp này thường gặp ở đâu?

Xác thực dữ liệu

Một kịch bản phổ biến: yêu cầu người dùng nhập dữ liệu hợp lệ (ví dụ, mật khẩu không ngắn hơn 6 ký tự) và lặp lại yêu cầu cho đến khi mọi thứ hợp lệ.

String password;
do
{
    System.out.print("Nhập mật khẩu mới (ít nhất 6 ký tự): ");
    password = console.nextLine();
}
while (password.length() < 6);

System.out.println("Mật khẩu đã được chấp nhận!");

Thân vòng lặp sẽ chạy ít nhất một lần — ngay cả khi người dùng nhập một mật khẩu dài ngay lập tức.

Menu trong ứng dụng console

Mẫu thường gặp: hiển thị menu, chờ lệnh và chỉ thoát khi có lệnh đặc biệt.

String command;
do
{
    System.out.println("Menu:");
    System.out.println("1. Hiển thị lời chào");
    System.out.println("2. Thoát");
    System.out.print("Chọn thao tác: ");
    command = console.nextLine();

    if (command.equals("1")) 
    {
        System.out.println("Xin chào, thế giới!");
    }
    else if (!command.equals("2"))
    {
        System.out.println("Lệnh không hợp lệ.");
    }
}
while (!command.equals("2"));

System.out.println("Tạm biệt!");

4. Bảng: So sánh while với các vòng lặp khác

Loại vòng lặp Thời điểm kiểm tra điều kiện Số lần thân có thể chạy Khi phù hợp sử dụng
while
Trước 0 lần trở lên Khi số lần lặp chưa biết trước
do-while
Sau 1 lần trở lên Khi cần đảm bảo thân chạy ít nhất một lần
for
Trước 0 lần trở lên Khi biết trước số vòng lặp
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION