Vòng lặp trong C# (Bài 3)
Vòng lặp trong C# cho phép bạn thực thi một hoặc nhiều câu lệnh lặp đi lặp lại cho đến khi thỏa điều kiện được chỉ định.
Lập trình C# hỗ trợ 4 loại vòng lặp đó là vòng lặp while, vòng lặp do…while, vòng lặp for và vòng lặp foreach.
Vòng lặp trong C# – Vòng lặp while
Nếu biểu thức điều kiện theo sau while là đúng (true) thì khối lệnh bên trong vòng lặp được thực hiện và sau mỗi lần lặp biểu thức điều kiện được kiểm tra lại và nếu biểu thức điều kiện là sai (false) vòng lặp sẽ kết thúc.
Cú pháp vòng lặp while
while (condition)
{
// Thực hiện xử lý nếu condition là true
}
Ví dụ vòng lặp while hiển thị các số từ 1 đến 5
Console.WriteLine("While statement example");
int i = 1;
while(i <= 5)
{
Console.Write(i + " ");
i++;
}
Kết quả khi thực thi
Vòng lặp trong C# – Vòng lặp do…while
Vòng lặp do…while cũng tương tự như vòng lặp while tuy nhiên nó luôn luôn thực thi khối lệnh bên trong ít nhất một lần vì vòng lặp do…while kiểm tra điều kiện lặp ở cuối. Đó chính là điểm khác biệt duy nhất giữa vòng lặp while và vòng lặp do…while
Cú pháp vòng lặp do…while
do
{
// Tiếp tục thực thi xử lý nếu condition là true;
} while (condition);
Ví dụ vòng lặp do…while kiểm tra một số nhập vào phải thoả điều kiện là > 0
Console.WriteLine("Do...While statement example");
int n;
do
{
Console.Write("Please input your number: ");
n = Convert.ToInt32(Console.ReadLine());
} while (n <= 0);
Console.Write("Alright");
Kết quả khi thực thi
Vòng lặp trong C# – Vòng lặp for
Tương tự như vòng lặp while, những câu lệnh bên trong vòng lặp for sẽ được thực thi nếu biểu thức điều kiện là đúng (true).
Cú pháp vòng lặp for
for (initialization; condition; increment/decrement)
{
// Xử lý sẽ được thực thi nếu condition là true
}
Ví dụ vòng lặp for hiển thị dãy số giảm dần từ 10 đến 1
Console.WriteLine("For statement example");
// int idx = 10 là initialization
// idx > 0 là condition
// idx-- là decrement
for (int idx = 10; idx > 0; idx--)
{
Console.Write(idx + " ");
}
Kết quả khi thực thi
Vòng lặp trong C# – Vòng lặp foreach
Vòng lặp foreach thường được sử dụng để xử lý trên mảng hoặc trên collection để truy cập giá trị của các phần tử trong mảng hoặc collection.
Cú pháp vòng lặp foreach
foreach (val in Array/Collection)
{
// Xử lý trong khi chưa hết các phần tử trong mảng hoặc collection
}
Ví dụ vòng lặp foreach hiển thị một dãy số trong mảng các sô nguyên
Console.WriteLine("Foreach statement example");
int[] intArr = new int[10];
Random r = new Random();
// Khởi tạo giá trị cho các phần tử của mảng
for (int idx = 0; idx < 10; idx++)
{
intArr[idx] = r.Next(1, 10);
}
// Hiển thị giá trị của các phần tử sử dụng foreach
Console.Write("Value of element: ");
foreach (int val in intArr)
{
Console.Write(val + " ");
}
Kết quả khi thực thi
Vòng lặp trong C# – Câu lệnh break
Như cấc bạn đã biết, câu lệnh break được sử dụng trong switch…case để kết thúc switch…case. Trong vòng lặp câu lệnh break được sử dụng để kết thúc vòng lặp.
Ví dụ sử dụng câu lệnh break để kết thúc vòng lặp nếu có một phần tử nào đó chia hết cho 2
Console.WriteLine("Break statement example");
int[] intArray = new int[10];
Random random = new Random();
// Khởi tạo mảng
for (int idx = 0; idx < 10; idx++)
{
intArray[idx] = random.Next(1, 20);
Console.Write(intArray[idx] + " ");
}
Console.Write("\nValue of element: ");
foreach (int e in intArray)
{
if (e % 2 == 0)
{
break;
}
Console.Write(e + " ");
}
Kết quả khi thực thi
Vòng lặp trong C# – Câu lệnh continue
Nếu như câu lệnh break sẽ kết thúc vòng lặp thì câu lệnh continue sẽ bỏ qua những xử lý ở sau câu lệnh continue.
Ví dụ sử dụng câu lệnh continue để hiển thị các số lẻ từ 1 đến 10
Console.WriteLine("Continue statement example");
for (int idx = 1; idx <= 10; idx++)
{
if (idx % 2 == 0)
{
continue;
}
Console.Write(idx + " ");
}
Kết quả khi thực thi
Vòng lặp trong C# – Tổng kết bài học
Đối với những vòng lặp đã xác định trước số lần lặp thì chúng ta sẽ sử dụng vòng lặp for. Sử dụng vòng lặp while nếu muốn kiểm tra điều kiện lặp trước khi thực hiện xử lý.
Câu lệnh break được sử dụng để kết thúc câu lệnh switch…case và vòng lặp. Câu lệnh continue được sử dụng trong vòng lặp để bỏ qua những xử lý phía sau nó.