Trong bài này, chúng ta sẽ tìm hiểu về vòng lặp while và do… while trong C #, cách sử dụng chúng và sự khác biệt giữa chúng.
Trong lập trình, người ta thường muốn thực hiện một số khối lệnh nhất định trong một số lần xác định. Một giải pháp khả thi là gõ các câu lệnh đó với số lần cần thiết. Tuy nhiên, số lần lặp lại có thể không được biết trước (trong thời gian biên dịch) hoặc có thể đủ lớn (giả sử 10000).
Giải pháp tốt nhất cho vấn đề này là vòng lặp. Vòng lặp được sử dụng trong lập trình để thực thi lặp đi lặp lại một khối câu lệnh nhất định cho đến khi đáp ứng một số điều kiện.
Trong bài viết này, chúng ta sẽ học cách sử dụng vòng lặp while trong C #.
Vòng lặp while trong C #
Các khi từ khóa được sử dụng để tạo vòng lặp while trong C #. Cú pháp của vòng lặp while là:
while (test-expression) (// body of while)
Vòng lặp while hoạt động như thế nào?
- Vòng lặp while trong C # bao gồm a
test-expression
. - Nếu
test-expression
được đánh giá làtrue
,- các câu lệnh bên trong vòng lặp while được thực thi.
- sau khi thực hiện,
test-expression
được đánh giá lại.
- Nếu
test-expression
được đánh giá làfalse
, vòng lặp while kết thúc.
Lưu đồ vòng lặp while
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("C# For Loop: Iteration (0)", i); i++; ) ) ) )
Khi chúng tôi chạy chương trình, kết quả đầu ra sẽ là:
C # For Loop: Lặp lại 1 C # For Loop: Lặp lại 2 C # For Loop: Lặp lại 3 C # For Loop: Lặp lại 4 C # For Loop: Lặp lại 5
Ban đầu giá trị của i là 1.
Khi chương trình đến câu lệnh vòng lặp while,
- biểu thức kiểm tra
i <=5
được đánh giá. Vì i là 1 và1 <= 5
làtrue
, nó thực thi phần thân của vòng lặp while. Ở đây, dòng được in trên màn hình với Lặp lại 1 và giá trị của i được tăng 1 để trở thành 2. - Bây giờ, biểu thức kiểm tra (
i <=5
) được đánh giá một lần nữa. Lần này, biểu thức trả vềtrue
(2 <= 5), vì vậy dòng được in trên màn hình và giá trị của i bây giờ được tăng lên 3… - Điều này diễn ra và vòng lặp while thực hiện cho đến khi tôi trở thành 6. Tại thời điểm này, biểu thức kiểm tra sẽ đánh giá
false
và do đó vòng lặp kết thúc.
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("Sum = (0)", sum); ) ) )
Khi chúng tôi chạy chương trình, kết quả đầu ra sẽ là:
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 tổng được khởi tạo bằng 0.
- Trên mỗi lần lặp, giá trị của tổng được cập nhật
sum+i
và giá trị của i được tăng thêm 1. - Khi giá trị của i đạt đến 6, biểu thức kiểm tra
i<=5
sẽ trả về false và vòng lặp kết thúc.
Hãy xem điều gì sẽ xảy ra trong chương trình đã cho trên mỗi lần lặp.
Ban đầu, i = 1, sum = 0
Các bước thực hiện vòng lặp WhileLặp lại | Giá trị của tôi | tôi <= 5 | Giá trị của tổng |
---|---|---|---|
1 | 1 | thật | 0 + 1 = 1 |
2 | 2 | thật | 1 + 2 = 3 |
3 | 3 | thật | 3 + 3 = 6 |
4 | 4 | thật | 6 + 4 = 10 |
5 | 5 | thật | 10 + 5 = 15 |
6 | 6 | sai | Vòng lặp kết thúc |
Vì vậy, giá trị cuối cùng của tổng sẽ là 15.
C # do… vòng lặp while
Các làm và khi từ khóa được sử dụng để tạo ra một do … while. Nó tương tự như vòng lặp while, tuy nhiên có sự khác biệt lớn giữa chúng.
Trong vòng lặp while, điều kiện được kiểm tra trước khi phần thân được thực thi. Nó hoàn toàn ngược lại trong vòng lặp do… while, tức là điều kiện được kiểm tra sau khi phần thân được thực thi.
Đây là lý do tại sao, phần thân của vòng lặp do… while sẽ thực thi ít nhất một lần bất kể biểu thức kiểm tra.
Cú pháp của vòng lặp do… while là:
do (// phần thân của vòng lặp do while) while (test-biểu thức);
Làm thế nào để… vòng lặp while hoạt động?
- Phần thân của vòng lặp do… while được thực thi lúc đầu.
- Sau đó,
test-expression
được đánh giá. - Nếu
test-expression
làtrue
, phần thân của vòng lặp được thực thi. - Khi vòng lặp
test-expression
isfalse
, do… while kết thúc.
Lưu đồ vòng lặp do… while
Ví dụ 3: vòng lặp do… while
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úng tôi chạy chương trình, kết quả đầu ra sẽ là:
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
As we can see, the above program prints the multiplication table of a number (5).
- Initially, the value of i is 1. The program, then enters the body of do… while loop without checking any condition (as opposed to while loop).
- Inside the body, product is calculated and printed on the screen. The value of i is then incremented to 2.
- After the execution of the loop’s body, the test expression
i <= 10
is evaluated. In total, the do… while loop will run for 10 times. - Finally, when the value of i is 11, the test-expression evaluates to
false
and hence terminates the loop.
Infinite while and do… while loop
If the test expression in the while and do… while loop never evaluates to false
, the body of loop will run forever. Such loops are called infinite loop.
For example:
Infinite while loop
while (true) (// nội dung của vòng lặp while)
Vòng lặp do… while vô hạn
do (// phần thân của vòng lặp while) while (true);
Vòng lặp vô hạn rất hữu ích khi chúng ta cần một vòng lặp để chạy miễn là chương trình của chúng ta chạy.
Ví dụ: nếu chương trình của bạn là hoạt ảnh, bạn sẽ cần phải liên tục chạy nó cho đến khi nó dừng lại. Trong những trường hợp như vậy, một vòng lặp vô hạn là cần thiết để tiếp tục chạy hoạt ảnh liên tục.