while / do{…}while(…)

1. Toán tử while

while(biểu thức )
{
    Khối lệnh ;
}

Hoạt động của toán tử while theo các bước sau:
1/ Xác định giá trị biểu thức đi sau while
2/ Tùy thuộc vào giá trị của biểu thức, chương trình sẽ rẽ theo 2 nhánh:
a. Nếu giá trị biểu thức là 1 (đúng) thì các khối lệnh trong thân toán tử while sẽ được thực hiện. Chương trình sẽ quay lại bước 1.
b. Nếu giá trị biểu thức có giá trị 0 (sai) thì khối lệnh trong thân toán tử while không được thực hiện (kết thúc vòng lặp while)
Chú ý:
1/ Biểu thức đi sau while có thể là nhiều câu lệnh và phân tách với nhau bởi dấu phẩy
2/ Trong thân toán tử while có thể sử dụng toán tử for hoặc while để tạo ra các vòng lặp kép
3/ Dùng từ khóa break, chương trình sẽ thoát ra khỏi vòng while sâu nhất
4/ Dùng từ khóa goto để nhảy đến 1 vị trí mong muốn trong hàm
5/ Dùng từ khóa continue để bỏ qua các câu lệnh sau câu lệnh continue; và chuyển đến 1 vòng lặp mới.

Ví dụ 1: in ra màn hình những số nguyên từ 1 tới x ( x > 0)

void main()
{
    int x;
    printf("\n Nhap vao so nguyen: ");
    scanf("%d", &x);
    while (x > 0)
    {
        printf("\n%d", x);
        x--;
    }
    getch();
}

 

Kết quả:

Nhap vao so nguyen: 5
5
4
3
2
1

2. Toán tử do{…}while(..)
Với toán tử for và while thì biểu thức điều kiện được kiểm tra ngay ban đầu, còn đối với do{ ..}while( ) thì việc kiểm tra được đặt ở cuối. Như vậy, khối lệnh bao giờ cũng được thực hiện ít nhất 1 lần. Cấu trúc như sau:

do
{
    Khối lệnh ;
}
while(biểu thức đk);

Hoạt động của do while
1/ Thực hiện khối lệnh trong thân do while
2/ Xác định giá trị biểu thức điều kiện, tùy thuộc vào giá trị của biểu thức mà chương trình sẽ đi theo 2 nhánh :
a. Nếu giá trị biểu thức đk là 1(đúng), chương trình sẽ quay lại bước 1 và thực hiện vòng lặp mới
b. Nếu giá trị biểu thức đk là 0(sai), sẽ kết thúc vòng lặp do while và sẽ thực hiện các lệnh tiếp theo (nếu có).
Ví dụ 2: nhập vào số nguyên dương và in ra màn hình, nếu nhập vào số âm , chương trình sẽ bắt nhập lại.

void main()
{
    int x;
    do
    {
        printf("\n Nhap vao so nguyen duong: ");
        scanf("%d", &x);
    }
    while(x < 0);
    printf("\n x = %d", x);
    getch();
}

Kết quả:

Nhap vao so nguyen duong: -2
Nhap vao so nguyen duong: 3
x = 3

Be the first to comment

Leave a Reply