Thứ Hai, 22 tháng 9, 2014

các cấu trúc lặp, while , do-while trong c


Mục đích của các vòng lặp là lặp lại một thao tác với một số lần nhất định hoặc trong khi một điều kiện nào đó còn thoả mãn
1. vòng lặp while 
dạng của nó như sau: while (điều kiện) lệnh thực thi khi điều  kiện đúng;
Ví dụ, chúng ta sẽ viết một chương trình đếm ngược sử dụng vào lặp while:
#include<stdio.h>
#include<conio.h>
void main()
{
int n;
printf("nhap n");
scanf_s("%d",&n);
while (n>0){ printf("%d",n); --n;}
_getch();
}
Khi chương trình chạy người sử dụng được yêu cầu nhập vào một số để đếm ngược. Sau đó, khi vòng lặp while bắt đầu nếu số mà người dùng nhập vào thoả mãn điều kiện điều kiện n>0 khối lệnh sẽ được thực hiện một số lần không xác định chừng nào điều kiện (n>0) còn được thoả mãn.
Chúng ta cần phải nhớ rằng vòng lặp phải kết thúc ở một điểm nào đó, vì vậy bên trong vòng lặp chúng ta phải cung cấp một phương thức nào đó để buộc (điều kiện)  trở thành sai nếu không thì nó sẽ lặp lại mãi mãi. Trong ví dụ trên vòng lặp phải có lệnh --n;
2. vòng lặp do while 
cú pháp: do lệnh thức thi while (điều kiện);
Chức năng của nó là hoàn toàn giống vòng lặp while chỉ trừ có một điều là ít nhất có 1 lần lệnh được thực hiện dù điều kiện có là sai đi chăng nữa.
 Ví dụ, chương trình dưới đây sẽ viết ra bất kì số nào mà bạn nhập vào cho đến khi bạn nhập số 0.
#include<stdio.h>
#include<conio.h>
void main()
{
unsigned long n;
do {
printf("nhap n:");
scanf_s("%lu", &n);
printf("\n ban da nhap: %lu \n", n);
} while (n != 0);
_getch();
}
Vòng lặp do-while thường được dùng khi điều kiện để kết thúc vòng lặp nằm trong vòng lặp, như trong ví dụ trên, số mà người dùng nhập vào là điều kiện kiểm tra để kết thúc vòng lặp. Nếu bạn không nhập số 0 trong ví dụ trên thì vòng lặp sẽ không bao giờ chấm dứt.
3. vòng lặp for
cú pháp: for ( đặt một giá khí ban đầu cho biến điều khiển; điều kiện; thay đổi trên biến ) lệnh thực hiện;
Sau đây là một ví dụ đếm ngược sử dụng vòng for.
#include<stdio.h>
#include<conio.h>
void main()
{
int n;
for (n = 10; n > 0; n--) printf("%d", n);
_getch();
}
Phần khởi tạo và lệnh tăng không bắt buộc phải có. Chúng có thể được bỏ qua nhưng vẫn phải có dấu chấm phẩy ngăn cách giữa các phần. Vì vậy, chúng ta có thể viết for (;n<10;) hoặc for (;n<10;n++).
#include<stdio.h>
#include<conio.h>
void main()
{
int n=10;
for (; n>0; n--) printf("%d", n);
_getch();
}
Bằng cách sử dụng dấu phẩy, chúng ta có thể dùng nhiều lệnh trong bất kì trường nào trong vòng for, như là trong phần khởi tạo. Ví dụ chúng ta có thể khởi tạo một lúc nhiều biến trong vòng lặp:

for ( n=0, i=100 ; n!=i ; n++, i-- ) {   // cái gì ở đây cũng được... }

Không có nhận xét nào:

Đăng nhận xét