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();
}
}
}