Xem thêm

Vòng lặp While trong C#: Cấu trúc và các ví dụ sử dụng

Huy Erick
Trong lập trình C#, vòng lặp while là một công cụ rất mạnh mẽ giúp thực hiện các tác vụ lặp đi lặp lại dựa trên một điều kiện. Trên thực tế, vòng lặp while...

Trong lập trình C#, vòng lặp while là một công cụ rất mạnh mẽ giúp thực hiện các tác vụ lặp đi lặp lại dựa trên một điều kiện. Trên thực tế, vòng lặp while được sử dụng phổ biến và thường xuyên trong các ứng dụng lập trình.

Giới thiệu

Với vòng lặp while trong C#, bạn có thể thực hiện các tác vụ lặp lại một cách linh hoạt và hiệu quả. Trên cơ sở kiến thức cơ bản về lập trình C#, chúng ta sẽ tìm hiểu về cấu trúc của vòng lặp while và xem qua các ví dụ sử dụng.

Cấu trúc của một vòng lặp while trong C

Cấu trúc cơ bản của vòng lặp while trong C# như sau:

while (<điều kiện lặp>)
{
    // khối lệnh lặp lại
}

Trong đó:

  • <điều kiện lặp> là một biểu thức logic, trả về giá trị true hoặc false.
  • Khối lệnh trong dấu ngoặc nhọn {} sẽ được thực thi cho đến khi <điều kiện lặp> trả về giá trị false.

Các ví dụ sử dụng while trong C

Dưới đây là một số ví dụ minh họa về việc sử dụng vòng lặp while trong C#.

Ví dụ 1: In ra một ma trận số

Hãy xem ví dụ sau:

static void Main(string[] args) 
{
    int countLoop = 0;
    int countLoopTime = 0;
    int valueNum = 10;
    int loopTime = 5;

    // Vẽ từ trên xuống LoopTime lần
    while (countLoopTime < loopTime)
    {
        // reset lại biến countLoop về 0 để viết lại từ đầu
        countLoop = 0;

        // vẽ từ trái qua valueNum lần
        while (countLoop < valueNum)
        {
            // in ra giá trị của countLoop trong 8 vị trí
            Console.Write("{0,8}", countLoop);

            // tăng giá trị của biến countLoop lên một đơn vị
            countLoop++;
        }

        // Mỗi khi hoàn thành một vòng lặp nhỏ thì lại xuống dòng chuẩn vị vẽ lần tiếp theo
        Console.WriteLine();

        // tăng giá trị countLoopTime lên một đơn vị
        countLoopTime++;
    }

    Console.ReadKey();
}

Kết quả sẽ là một ma trận số xuất hiện trên màn hình.

Vòng lặp While trong C#

Ví dụ 2: Vẽ ma trận số ngẫu nhiên

Bạn cũng có thể in ra một ma trận số với giá trị ngẫu nhiên bằng cách sử dụng lớp Random. Dưới đây là ví dụ tương tự như trên, nhưng sử dụng lớp Random để sinh giá trị ngẫu nhiên cho mỗi ô trong ma trận.

static void Main(string[] args) 
{
    int countLoop = 0;
    int countLoopTime = 0;
    int valueNum = 10;
    int loopTime = 5;
    int minRandomValue = 0;
    int maxRandomValue = 100;
    Random rand = new Random();

    // Vẽ từ trên xuống LoopTime lần
    while (countLoopTime < loopTime)
    {
        // reset lại biến countLoop về 0 để viết lại từ đầu
        countLoop = 0;

        // vẽ từ trái qua valueNum lần
        while (countLoop < valueNum)
        {
            // giá trị sinh ngẫu nhiên trong khoảng [minRandomValue . . maxRandomValue - 1]
            int showValue = rand.Next(minRandomValue, maxRandomValue);

            // in ra giá trị của showValue trong 8 vị trí
            Console.Write("{0,8}", showValue);

            // tăng giá trị của biến countLoop lên một đơn vị
            countLoop++;
        }

        // Mỗi khi hoàn thành một vòng lặp nhỏ thì lại xuống dòng chuẩn vị vẽ lần tiếp theo
        Console.WriteLine();

        // tăng giá trị countLoopTime lên một đơn vị
        countLoopTime++;
    }

    Console.ReadKey();
}

Kết quả sẽ là một ma trận số hoàn toàn ngẫu nhiên được xuất ra màn hình.

Vòng lặp While trong C#

Ví dụ 3: Vẽ một hình chữ nhật rỗng

Bạn cũng có thể vẽ một hình chữ nhật rỗng NxM với vòng lặp while. Dưới đây là một ví dụ minh họa:

static void Main(string[] args) 
{
    int Vertical = 20;
    int Horizontal = 50;
    char drawChar = '*';
    char insideChar = ' ';
    int countLoopVertical = 0;
    int countLoopHorizontal = 0;

    // Vẽ từ trên xuống
    while (countLoopVertical < Vertical)
    {
        // khởi tạo lại giá trị countLoopHorizontal = 0 mỗi lần lặp mới
        countLoopHorizontal = 0;

        // Vẽ từ trái sang
        while (countLoopHorizontal < Horizontal)
        {
            /* 
            * Nếu đang ở tọa độ là cạnh trên hoặc dưới (i % (N - 1) == 0)
            * hoặc đang ở cạnh trái hoặc phải (j % (M - 1) == 0)
            * mà không nằm ở cạnh trên hoặc dưới (i % (N - 1) != 0)
            * ((i % (N - 1) != 0) && (j % (M - 1) == 0))
            * thì vẽ ra ký tự của hình chữ nhật
            * ngược lại vẽ ra ký tự không thuộc hình chữ nhật
            */
            if (countLoopVertical % (Vertical - 1) == 0 || ((countLoopVertical % (Vertical - 1) != 0) && (countLoopHorizontal % (Horizontal - 1) == 0)))
            {
                Console.Write(drawChar); // lúc này là ký tự *
            }
            else
            {
                Console.Write(insideChar); // lúc này là ký tự rỗng ' '
            }

            // tăng giá trị của countLoopHorizontal lên 1 đơn vị
            countLoopHorizontal++;
        }

        // mỗi lần vẽ xong một hàng thì xuống dòng
        Console.WriteLine();

        // tăng giá trị của countLoopVertical lên 1 đơn vị
        countLoopVertical++;
    }

    Console.ReadKey();
}

Kết quả sẽ là một hình chữ nhật rỗng chiều ngang 20, chiều dài 50 được vẽ lên màn hình.

Vòng lặp While trong C#

Bạn có thể thay đổi các giá trị như M, N, drawCharinsideChar để tạo ra những hình chữ nhật màu mè và kích thước khác nhau.

Kết luận

Với vòng lặp while trong C#, bạn có thể thực hiện các tác vụ lặp lại một cách linh hoạt và hiệu quả. Trên cơ sở nắm vững cấu trúc và các ví dụ sử dụng, bạn có thể áp dụng vòng lặp while vào các dự án lập trình của mình.

Trong bài viết này, chúng ta đã tìm hiểu về cấu trúc cơ bản của vòng lặp while trong C# và xem qua các ví dụ sử dụng. Hy vọng bài viết đã giúp bạn hiểu rõ hơn về vòng lặp while và sẽ áp dụng nó một cách hiệu quả vào công việc lập trình của mình.

Nếu bạn có bất kỳ câu hỏi hoặc ý kiến nào, hãy để lại bình luận dưới đây. Chúc bạn thành công trong việc học lập trình!

Tham khảo: nanado.edu.vn

1