Professional Documents
Culture Documents
Tuan3 VongLap Quy
Tuan3 VongLap Quy
Vòng lặp
Vòng lặp
• Giới thiệu câu lệnh cho phép:
• Lặp lại nhiều lần một khối lệnh
• Tuần 5 :
• Tuần trước
• Cấu trúc rẽ nhánh (if else)
• Tuần này
• Cấu trúc vòng lặp
Outline Vòng lặp while
Vòng lặp do while
Vòng lặp for
Câu lệnh lặp
• Câu lệnh lặp sử dụng để thực thi một câu lệnh/ khối lệnh nhiều lần
• Giống cấu trúc rẽ nhánh, vòng lặp bị kiểm soát bởi biểu thức logic
• C/C++ có 3 kiểu câu lệnh lặp:
• while
• do while
• for
Vòng lặp while
• Cú pháp
while ( điều kiện ) {
câu lệnh 1;
…
câu lệnh n;
}
• Nếu điều kiện đúng, khối câu lệnh được thực hiện
• Sau đó tiếp tục kiểm tra điều kiện, nếu đúng thực
hiện tiếp khối lệnh
• Lặp lại như vậy đến khi điều kiện sai
Logic vòng lặp while
KT điều kiện
true false
Khối lệnh
Vòng lặp while
• Ví dụ:
int count = 1;
while (count <= 5)
{
printf(“%d”, count);
count++; // count = count + 1
}
• Nếu điều kiện của vòng while sai từ đầu, vòng lặp
bị bỏ qua
Cấu trúc lặp lại của while
int product
int product == 2;
2;
while (( product
while product <=<= nn ))
int product = 2 product == 22 ** product;
product product;
true
product <=n product = 2 * product
false
Ví dụ
Vòng lặp vô hạn
• Thân vòng lặp while phải khiến điều kiện sai
• Nếu không, vòng lặp chạy vô hạn
• Đây là lỗi thường gặp
• Kiểm tra kỹ logic vòng lặp
Vòng lặp vô hạn
• Ví dụ:
int count = 1;
while (count <= 25)
{
printf(“%d”, count);
count = count - 1;
}
Vòng lặp lồng nhau
• Thân vòng lặp có thể chứa vòng lặp khác
• Với mỗi bước lặp của vòng lặp ngoài, vòng lặp con chạy hết
Vòng lặp lồng nhau
• Bao nhiêu dòng “ISP“ được in ra?
count1 = 1;
while (count1 <= 10)
{
count2 = 1;
while (count2 <= 20)
{
printf(“ISP\n");
count2++;
}
count1++;
}
Outline Vòng lặp while
Vòng lặp do while
Vòng lặp for
Do while
• Cú pháp
do
{
câu lệnh;
}
while ( điều kiện )
Câu lệnh
true
KT điều kiện
false
Do while
• Ví dụ
int n;
do
{
scanf(“%d”, &n);
} while (n <= 0);
Câu lệnh
KT điều kiện
true
Câu lệnh
false
Outline
Vòng lặp while
Vòng lặp do while
Vòng lặp for
Vòng lặp for
• Cú pháp
Câu lệnh khởi tạo Câu lệnh
thực hiện 1 lần khi thực thi đến khi
bắt đầu điều kiện sai
Khởi tạo
KT điều kiện
true false
Câu lệnh
Bước nhảy
Câu lệnh for
• Vòng lặp for thực hiện giống như một vòng while với cấu trúc như sau
Khởi tạo;
while ( điều kiện )
{
Câu lệnh;
bước nhảy;
}
Câu lệnh for
• Ví dụ
• Điều kiện bị bỏ qua -> luôn coi là đúng (có thể bị lặp vô hạn)
5-24
Bài tập
• Bao nhiêu lần lặp được chạy?
• for (int x = 3; x <= 15; x += 3)
printf(“%d”, x);
• for (int x = 1; x <= 5; x += 7)
printf(“%d”, x);
• for (int x = 12; x >= 2; x -= 3)
printf(“%d”, x);
• Viết vòng for thực hiện in ra các chuỗi số sau
• 1, 2, 3, 4, 5, 6, 7
• 3, 8, 13, 18, 23
• 20, 14, 8, 2, -4, -10
• 19, 27, 35, 43, 51
Kiểm tra một số là số nguyên tố hay không