You are on page 1of 27

Tuần 3

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 )

• Khối lệnh ban đầu thực hiện 1 lần, sau điều


kiện được kiểm tra
• Khối lệnh thực hiện đến khi điều kiện sai
Logic vòng lặp do while

Câu lệnh

true

KT điều kiện

false
Do while
• Ví dụ

int n;
do
{
scanf(“%d”, &n);
} while (n <= 0);

∙ Phần thân vòng do while thực hiện ít nhất một lần


So sánh vòng while và do while
while do while

Câu lệnh
KT điều kiện
true

true false KT điều kiện

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

for ( initialization ; condition ; increment ){


câu lệnh;
}

Bước nhảy được thực hiện mỗi khi


bước lặp kết thúc
Logic vòng lặp for

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ụ

for (int count=1; count <= 5; count++)


printf(“%d”, count);

• Phần khởi tạo có được sử dụng để khai báo biến


• Giống vòng while, điều kiện vòng for được kiểm
tra trước tiên khi bước vào vòng lặp
• Vòng for có thể thực hiện nhiều lần hoặc không
thực hiện
Câu lệnh for
• Các biểu thức đầu vòng for không bắt buộc (có thể bỏ)

• Đ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

• Số nguyên tố là số chỉ chia hết cho 1 và chính nó


Tính số Fibonacci thứ n

You might also like