CodeGym /Các khóa học /C# SELF /Vòng lặp do-while: làm quen và những điều cần chú ý

Vòng lặp do-while: làm quen và những điều cần chú ý

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

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

Giờ thử tưởng tượng nhé: bạn muốn viết một chương trình đoán số mà người dùng nghĩ ra. Bạn cần chương trình hỏi người dùng số ít nhất một lần, và hỏi lại liên tục cho đến khi đoán đúng. Nhưng nếu điều kiện sai ngay từ đầu, while thông thường sẽ không chạy vào trong vòng lặp đâu.

Đây là lúc vòng lặp do-while xuất hiện. Khác với while, nó luôn chạy phần thân vòng lặp ít nhất một lần — kể cả khi điều kiện sai ngay lập tức. Kiểu như bạn được phát kẹo cao su miễn phí dù có mua gì hay không ấy.

do
{
    // Thân vòng lặp: đoạn code này sẽ chạy ít nhất một lần
}
while (điều kiện);
Cú pháp vòng lặp do-while

Lưu ý dấu chấm phẩy ; ở cuối sau ngoặc điều kiện nhé! Trong while thường thì không có, còn ở đây thì phải có. Đây là cái bẫy nhỏ cho newbie đó :)

Các bước thực hiện vòng lặp do-while

  1. Vào thân vòng lặp (luôn 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 vòng lặp.
  4. Nếu điều kiện sai — thoát khỏi vòng lặp.

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

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

while (điều kiện)
{
    // Thân vòng lặp
}

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

Giờ ví dụ với do-while:

do
{
    // Thân vòng lặp
}
while (điều kiện);

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

Cùng xem code minh họa sự khác biệt nhé:

// while thường
int count = 0;
while (count > 0)
{
    Console.WriteLine("count = " + count);
    count--;
}
// Không in ra gì cả

// do-while
int count2 = 0;
do
{
    Console.WriteLine("count2 = " + count2);
    count2--;
}
while (count2 > 0);
// Sẽ in ra "count2 = 0" dù điều kiện sai!

Đôi khi nhìn có vẻ "lạ lạ", nhưng nhiều lúc chính kiểu hoạt động này lại cứu code của bạn (ví dụ khi nhập liệu từ người dùng và kiểm tra dữ liệu).

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

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

Kiểm tra dữ liệu nhập vào

Tình huống phổ biến nhất — bạn muốn người dùng nhập đúng (ví dụ chỉ nhập số, hoặc mật khẩu ít nhất 6 ký tự), và lặp lại yêu cầu cho đến khi nhập hợp lệ.

string password;
do
{
    Console.Write("Nhập mật khẩu mới (ít nhất 6 ký tự): ");
    password = Console.ReadLine();
}
while (password.Length < 6);

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

Trong ví dụ này, thân vòng lặp luôn chạy ít nhất một lần — kể cả khi người dùng nhập đúng ngay từ đầu.

Menu trong ứng dụng console

Một pattern rất hay gặp và hữu ích: hiển thị menu, chờ lệnh người dùng và chỉ thoát vòng lặp khi có lệnh đặc biệt.

string command;
do
{
    Console.WriteLine("Menu:");
    Console.WriteLine("1. Hiển thị lời chào");
    Console.WriteLine("2. Thoát");
    Console.Write("Chọn thao tác: ");
    command = Console.ReadLine();

    if (command == "1")
    {
        Console.WriteLine("Xin chào, thế giới!");
    }
    else if (command != "2")
    {
        Console.WriteLine("Lệnh không xác định.");
    }
}
while (command != "2");

Console.WriteLine("Tạm biệt!");

4. So sánh while và các vòng lặp khác

Loại vòng lặp Kiểm tra điều kiện Số lần thân vòng lặp có thể chạy Khi nào nên dùng
while Trước 0 lần hoặc nhiều hơn Khi chưa biết trước số lần lặp
do-while Sau 1 lần hoặc nhiều hơn Khi cần chạy ít nhất một lần
for Trước 0 lần hoặc nhiều hơn Khi biết chắc số vòng lặp
2
Nhiệm vụ
C# SELF, mức độ, bài học
Đã khóa
Cơ bản về vòng lặp do-while
Cơ bản về vòng lặp do-while
2
Nhiệm vụ
C# SELF, mức độ, bài học
Đã khóa
Giá trị nhỏ nhất trong các số đã nhập
Giá trị nhỏ nhất trong các số đã nhập
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION