Vòng lặp do while trong c#
Ở các bài trước mình đã được học vòng lặp for
, và vòng lặp while
trong c# là gì. Trong bài này mình tiếp tục tìm hiểu về một vòng lặp khác nữa trong c# đó là vòng lặp do while
Vậy vòng lặp do while
là gì? Sử dụng vòng lặp do while
như thế nào? Sự khác biệt giữa vòng lặp for
, while
và do while
là gì?.
1. Vòng lặp do while
Trong C# vòng lặp do while
được sử dụng để lặp đi lặp lại một đoạn code nào đó. Nếu số lần lặp không cố định và bạn phải thực hiện vòng lặp ít nhất một lần, thì nên sử dụng vòng lặp do while
.
Vòng lặp do while
được thực thi ít nhất một lần vì điều kiện được kiểm tra sau thân vòng lặp.
Bài viết này được đăng tại [free tuts .net]
do{ //đoạn code được thực thi }while(điều kiện);
2. Ví dụ vòng lặp do while
using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { int i = 1; do { Console.WriteLine("Gia tri: " + i); i++; } while (i <= 5); Console.ReadKey(); } } }
Mình giải thích đoạn code trên:
- Đầu tiên biến i được gán giá trị là 1, tiếp đến vòng lặp
do while
- Vòng lặp 1: in giá trị i = 1, tăng i lên 1, bây giờ i = 2, kiểm tra điều kiện 2 <= 5 (thỏa mãn điều kiện)
- Vòng lặp 2: in giá trị i = 2, tăng i lên 1, bây giờ i = 3, kiểm tra điều kiện 3 <= 5 (thỏa mãn điều kiện)
- Vòng lặp 3: in giá trị i = 3, tăng i lên 1, bây giờ i = 4, kiểm tra điều kiện 4 <= 5 (thỏa mãn điều kiện)
- Vòng lặp 4: in giá trị i = 4, tăng i lên 1, bây giờ i = 5, kiểm tra điều kiện 5 <= 5 (thỏa mãn điều kiện)
- Vòng lặp 5: in giá trị i = 5, tăng i lên 1, bây giờ i = 6, kiểm tra điều kiện 6 <= 5 (không thỏa mãn điều kiện), kết thúc vòng lặp
Kết quả sau khi biên dịch đoạn code trên:
using System; public class Example { public static void Main(string[] args) { int i = 11; do{ Console.WriteLine("Giá trị: " + i); i++; } while (i <= 5) ; } }
- Đầu tiên biến i được gán giá trị là 11, tiếp đến vòng lặp
do while
- Vòng lặp 1: in giá trị i = 11, tăng i lên 1, bây giờ i = 12, kiểm tra điều kiện 12 <= 5 (không thỏa mãn điều kiện), kết thúc vòng lặp
3. Vòng lặp do while vô hạn
Trong c# nếu điều kiện của vòng lặp do while
luôn đúng thì đoạn code bên trong vòng lặp được lặp lại vô hạn.
using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { int i = 1; do { Console.WriteLine("Gia tri: " + i); } while (i==1); Console.ReadKey(); } } }
Và đoạn code trên sẽ chạy vô hạn:
4. Vòng lặp do while lồng nhau
Trong C #, nếu bạn sử dụng vòng lặp do while
bên trong một vòng lặp do while
khác, nó được gọi là vòng lặp do while
lồng nhau. Vòng lặp do while
bên trong được thực thi đầy đủ cho mỗi vòng lặp do while
bên ngoài.
Chúng ta hãy xem một ví dụ đơn giản về vòng lặp do while
lồng nhau trong C # như sau:
using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { int i = 1; do { Console.WriteLine("Vong lap thu i = " + i); int j = 1; do { Console.WriteLine("gia tri j = " + j); j++; } while (j <= 4); i++; } while (i <= 4); Console.ReadKey(); } } }
Và kết quả sau khi thực thi đoạn code trên:
5. So sánh for, while, do while
Mình cùng so sánh điểm giống nhau và khác nhau giữa 3 vòng lặp for
, while
và do while
như sau:
Giống nhau:
- Mục đích của cả 3 vòng lặp
for
,while
vàdo while
điều dùng để lặp đi lặp lại một đoạn code nào đó.
Khác nhau:
- Vòng lặp
for
: Số vòng lặp là biết trước, kiếm tra điều kiện trước và thực hiện đoạn code bên trong vòng lặp sau khi thỏa mãn điều kiện, vì vậy đoạn code bên trong vòng lặpfor
có thể không được thực hiện lần nào nếu điều kiện sai. - Vòng lặp
while
: Số vòng lặp là không biết trước, kiểm tra điều kiện trước và thực hiện đoạn code bên trong vòng lặp sau khi thỏa mãn điều kiện, vì vậy đoạn code bên trong vòng lặpwhile
có thể không được thực hiện lần nào nếu điều kiện sai. - Vòng lặp
do while
: Số vòng lặp là không biết trước, thực thi đoạn code bên trong vòng lặp trước rồi mới kiểm tra điều kiện, vì vậy đoạn code bên trong vòng lặpdo while
được thực hiện ít nhất 1 lần.
6. Kết luận
do while
trong c#. Sự khác nhau giữa vòng lặp for
, while
và do while
. Tùy vào yêu cầu bài toán mà các bạn chọn vòng lặp cho phù hợp nhé.