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í 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í 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.
Bạn có thể thay đổi các giá trị như M
, N
, drawChar
và insideChar
để 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