Trong lĩnh vực lập trình, vòng lặp là một công cụ quan trọng để thực hiện các khối lệnh lặp đi lặp lại một số lượng nhất định. Trong ngôn ngữ lập trình C#, chúng ta có hai loại vòng lặp là vòng lặp while (while loop) và vòng lặp do while (do..while loop). Hai loại vòng lặp này có cách sử dụng và khác biệt riêng.
Vòng lặp while trong C
Vòng lặp while trong C# được tạo ra bằng từ khoá "while". Cú pháp của vòng lặp while như sau: while (test-expression) { // nội dung vòng lặp }
Cách hoạt động của vòng lặp while
- Vòng lặp while trong C# bao gồm một biểu thức kiểm tra (test-expression).
- Nếu test-expression được đánh giá là true, nội dung bên trong vòng lặp while sẽ được thực thi.
- Sau khi thực thi, test-expression sẽ được đánh giá lại lần nữa.
- Nếu test-expression được đánh giá là false, vòng lặp while sẽ kết thúc.
Ví dụ 1: Vòng lặp while
using System;
namespace Loop
{
class WhileLoop
{
public static void Main(string[] args)
{
int i = 1;
while (i <= 5)
{
Console.WriteLine("Vòng lặp While: Lần lặp thứ {0}", i);
i++;
}
}
}
}
Khi chạy chương trình, output sẽ hiển thị:
Vòng lặp While: Lần lặp thứ 1
Vòng lặp While: Lần lặp thứ 2
Vòng lặp While: Lần lặp thứ 3
Vòng lặp While: Lần lặp thứ 4
Vòng lặp While: Lần lặp thứ 5
Trong ví dụ trên, giá trị ban đầu của biến i
là 1. Khi chạy chương trình, test expression i <= 5
sẽ được đánh giá. Vì i
là 1 và 1 <= 5
là đúng (true), nội dung bên trong vòng lặp while sẽ được thực thi. Ở đây, dòng chữ "Vòng lặp While: Lần lặp thứ 1" được in ra màn hình và giá trị của i
được tăng thêm 1 trở thành 2.
Quá trình này lặp lại cho đến khi i
bằng 6 thì vòng lặp while sẽ kết thúc. Lúc này, test-expression sẽ được đánh giá là false, do đó vòng lặp ngừng lại.
Ví dụ 2: Vòng lặp while để tính tổng của 5 số tự nhiên đầu tiên
using System;
namespace Loop
{
class WhileLoop
{
public static void Main(string[] args)
{
int i = 1, sum = 0;
while (i <= 5)
{
sum += i;
i++;
}
Console.WriteLine("Tổng = {0}", sum);
}
}
}
Khi chạy chương trình, output sẽ hiển thị: Tổng = 15
Chương trình này tính tổng của 5 số tự nhiên đầu tiên. Ban đầu, giá trị của biến sum
được khởi tạo bằng 0. Ở mỗi lần lặp, giá trị của sum
sẽ được cập nhật thành sum + i
và giá trị của i
được tăng thêm 1. Khi giá trị của i
đạt đến 6, test expression i <= 5
sẽ trả về false và vòng lặp kết thúc.
Vòng lặp do while trong C
Vòng lặp do while trong C# được tạo ra bằng từ khoá "do" và "while". Câu lệnh do while loop tương tự như while loop, tuy nhiên, vẫn có ba điểm khác biệt chính.
- Trong while loop, điều kiện được kiểm tra trước khi phần thân của while loop thực thi. Điều này trái ngược với do…while loop.
- Điều kiện sẽ được kiểm tra sau khi phần thân của do…while loop đã được thực thi.
- Điều này có nghĩa là phần thân của do…while loop sẽ được thực thi ít nhất một lần mà không liên quan đến kết quả của test-expression.
Cú pháp của do…while loop như sau:
do
{
// nội dung vòng lặp
}
while (test-expression);
Cách hoạt động của do…while loop
- Phần thân (body) của do…while loop được thực thi.
- Sau đó test-expression được đánh giá.
- Nếu test-expression trả về true, body của do..while loop sẽ được thực thi.
- Nếu test-expression trả về false, do…while loop kết thúc.
Ví dụ 3: Vòng lặp do…while loop
using System;
namespace Loop
{
class DoWhileLoop
{
public static void Main(string[] args)
{
int i = 1, n = 5, product;
do
{
product = n * i;
Console.WriteLine("{0} * {1} = {2}", n, i, product);
i++;
}
while (i <= 10);
}
}
}
Khi chạy chương trình, output sẽ hiển thị:
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
5 * 10 = 50
Như bạn đã thấy, chương trình trên in ra bảng cửu chương của số 5 (number (5)). Ban đầu, giá trị của i
là 1. Chương trình sau đó đã thực thi body của do…while loop mà không kiểm tra condition (trái ngược với while loop).
Trong phần body, product
được tính toán và in ra màn hình. Giá trị của i
sau đó được tăng lên 2.
Sau khi body được thực thi, test expression i <= 10
được đánh giá. Tổng cộng, do…while loop lặp lại 10 lần.
Cuối cùng, khi giá trị của i
bằng 11, test-expression được đánh giá là false và vòng lặp kết thúc.
Cấu trúc do while loop và while loop vô hạn
Nếu test expression trong while loop và do…while loop không bao giờ trả về kết quả false, body của vòng lặp sẽ chạy không ngừng. Những vòng lặp như vậy gọi là infinite loop (vòng lặp vô hạn).
Ví dụ:
Infinite while loop
while (true)
{
// nội dung vòng lặp
}
Infinite do…while loop
do
{
// nội dung vòng lặp
}
while (true);
Infinite loop rất hữu ích khi chúng ta cần thực hiện một vòng lặp chạy liên tục trong chương trình. Ví dụ, nếu chương trình của bạn là một animation, bạn sẽ cần phải chạy liên tục cho đến khi chương trình kết thúc. Trong trường hợp đó, infinite loop sẽ cần thiết cho việc chạy animation liên tục.
Kết luận
Như vậy, trong bài viết này, chúng ta đã tìm hiểu về cách sử dụng vòng lặp while và vòng lặp do while trong C#. Hi vọng các bạn đã nắm được cách sử dụng hai loại vòng lặp này thành thạo.