Vòng lặp for

Vòng lặp for có dạng như sau:

for(biểu thức 1; biểu thức 2; biểu thức 3)
{
    Khối lệnh;
}

Trong đó:

Biểu thức 1: khởi tạo giá trị ban đầu cho biến điều khiển
Biểu thức 2: là biểu thức quan hệ logic, là điều kiện để tiếp tục/kết thúc vòng lặp for (tránh gây vòng lặp vô hạn)
Biểu thức 3: thay đổi giá trị của biến điều khiển

Hoạt động của vòng lặp for
B1/ Thực hiện biểu thức 1
B2/ Thực hiện biểu thức 2
B3/ Tùy thuộc vào tính đúng sai của biểu thức 2 mà chương trình sẽ thực hiện theo 2 hướng:
a. Nếu biểu thức 2 có giá trị 1 (đúng) chương trình sẽ thực hiện khối lệnh của vòng for. Nếu gặp dấu đóng ngoặc cuối cùng của vòng for hoặc gặp từ khóa continue thì chương trình sẽ chuyển tới bước 4
b. Nếu biểu thức 2 có giá trị 0 (sai), chương trình ra khỏi vòng for (kết thúc vòng lặp)
B4/ Thực hiện biểu thức 3, sau đó quay lại bước 2 để bắt đầu một vòng mới.
Chú ý: 
1/ Biểu thức 1 chỉ được thực hiện 1 lần
2/ Biểu thức 2,3 có thể được thực hiện nhiều lần.
3/ Khi vắng mặt biểu thức 2, thì nó được xem là luôn đúng (vòng lặp vô hạn). Để tránh điều này, ta dùng từ khóa break hoặc goto hoặc return (tùy vào mục đích) để thoát khỏi vòng lặp for.
4/ Trong mỗi biểu thức trong dấu ngoặc tròn của vòng lặp for. Mỗi biểu thức ta có thể viết nhiều câu lệnh và phân tách nhau bởi dấu phẩy.
5/ Ta có thể sử dụng nhiều vòng for lồng nhau.
6/ Khi sử dụng break trong thân vòng for, chương trình sẽ nhảy ra khỏi vòng for gần nhất.
7/ Sử dụng từ khóa continue để bỏ qua các lệnh còn lại trong vòng for và chuyển tới điểm bắt đầu của vòng lặp mới.

 

Ví dụ 1: in ra màn hình số nguyên từ 0 – 9

void main()
{
    int i;
    for(i = 0 ; i < 10 ; i++)
    {
        printf("\n i = %d", i);
    }
    getch();
}

Ví dụ 2: in ra màn hình từ 0 – 9, khuyết biểu thức điều kiện trong vòng lặp for.

void main()
{
    int i;
    for(i = 0; ; i++)
    {
        printf("\n i = %d", i);
        if(i == 10)
            break;
    }
    getch();
}

Ví dụ 3: in ra màn hình từ 0 – 9, khuyết biểu thức 3 trong vòng lặp for.

void main()
{
    int i;
    for(i = 0; i < 10; )
    {
        printf("\n i = %d", i);
        i++;
    }
    getch();
}

Be the first to comment

Leave a Reply