Cấu trúc lặp do-while
Chức năng của vòng lặp do-while là hoàn toàn giống vòng lặp while chỉ trừ có một điều là điều kiện điều khiển vòng lặp được tính toán sau khi [Khối lệnh]
được thực hiện, vì vậy [Khối lệnh]
sẽ được thực hiện ít nhất một lần ngay cả khi [biểu thức điều khiển]
không bao giờ được thoả mãn
Cú pháp:
do { Khối lệnh; } while (biểu thức điều khiển);
Trong đó:
- [biểu thức điều khiển]
là biểu thức logic
- Trong [Khối lệnh]
cần có tác động để [biểu thức điều khiển]
sai đi.
Ví dụ:
Ví dụ 1: Tính tổng các số từ 1 đến n, với n nhập vào từ bàn phím thỏa mãn 1<n<2014.
namespace VD1{ class Program{ static void Main(string[] args){ int n; // su dụng do-while de nhap n do{ Console.Write("\nNhap n: "); n = int.Parse(Console.ReadLine()); if (n <= 1 || n >= 2015) Console.Write("\nNhap lai n: "); } while (n <= 1 || n >= 2015); // tinh tong int s = 0, i = 0; do{ s = s + i; i++; }while (i <= n); // in ket qua Console.Write("\nTong = : "+s); Console.ReadLine(); } } }
Ví dụ 2: Đếm số chẵn nhỏ hơn n, với n nhập vào từ bàn phím thỏa mãn 4<=n<=1000.
namespace VD2_DOWHILE{ class Program{ static void Main(string[] args){ int n; // su dụng do-while de nhap n do{ Console.Write("\nNhap n: "); n = int.Parse(Console.ReadLine()); if (n < 3 || n > 2000) Console.Write("\nNhap lai n: "); } while (n < 3 || n > 2000); // dem so chan int dem = 0, i = 0; do{ if (i % 2 == 0) dem++; i++; } while (i <= n); // in ket qua Console.Write("\nCo " + dem + " so chan nho hon " +n); Console.ReadLine(); } } }
Ví dụ 3: In ra màn hình tất cả số nguyên gồm 4 chữ sao cho tổng các chữ số bằng 9.
namespace VD3_DOWHILE{ class Program{ static void Main(string[] args){ Console.Write("\n Cac so nguyen gom 4 chu so, tong cac chu so bang 9: "); int i=1000; do{ if (i % 10 + (i / 10) % 10 + (i / 100) % 10 + i / 1000 == 9) Console.Write(i + ";"); i++; } while (i <= 9999); Console.ReadLine(); } } }
Ví dụ 4: In ra màn hình tất cả số nguyên tố nhỏ hơn 500.
namespace VD4_DOWHILE{ class Program{ static void Main(string[] args){ Console.Write("\n In so nguyen to nho hon 500: \n"); int i = 1; do{ int test = 0, j = 2; do{ if (i % j == 0){ test = 1; break; } j++; } while (j < i); if (test == 0) Console.Write(i + " ; "); i++; } while (i <= 500); Console.ReadLine(); } } }