Cú pháp và cách sử dụng vòng lặp for trong C++

Đây là bài 20/43 bài của series môn học Nhập môn lập trình

Giải sử, cần viết chương trình xuất các số từ 1 đến 10. Đơn giản là sử dụng 10 câu lệnh cout<<. Nhưng cần viết chương trình xuất các số từ 1 đến 1000. Sử dụng 1000 câu lệnh cout<< thì sẽ là một pha xử lý thật “cồng kềnh”.

Giải pháp là sử dụng cấu trúc lặp để thực hiện các công việc mang tính lặp lại khi thỏa mãn điều kiện nào đó. Có 3 lệnh lặp trong C++ là for, while, do…while. Bài này sẽ giới thiệu cách sử dụng vòng lặp for.

1. Cú pháp vòng lặp for

Cho phép thực hiện công việc lặp đi lặp lại nhiều lần với số lần lặp có thể xác định trước.

for (<khởi đầu>; <điều kiện lặp>; <bước nhảy>) {
    //code block 
}

Nguyên lý hoạt động của vòng lặp for như sau:

<khởi đầu> khởi tạo giá trị của biến và chỉ thực thi một lần duy nhất. Sau đó, nếu <điều kiện lặp> đúng (true) thì thực thi các dòng lệnh trong vòng lặp for. Nếu <điều kiện lặp> sai (false) thì kết thúc vòng lặp.

<bước nhảy> sẽ thay đổi giá trị của biến lúc <khởi đầu>. Giá trị của biến này sẽ được kiểm tra lại (kiểm tra <điều kiện lặp>) sau mỗi lần lặp.

Chương trình C++ in ra số từ 1 đến 5 sử dụng vòng lặp for

#include <iostream>
using namespace std;

int main()
{
	for (int i = 1; i <= 5; ++i) {
		cout << i << " ";
	}
	return 0;
}
Kết quả
1 2 3 4 5

Chương trình trên thực hiện các lần lặp trong for như sau:

Lần lặpBiến iĐiều kiện lặp i<=5Thực thi
1i=1trueIn ra 1 và tăng i lên 2
2i=2trueIn ra 2 và tăng i lên 3
3i=3trueIn ra 3 và tăng i lên 4
4i=4trueIn ra 4 và tăng i lên 5
5i=5trueIn ra 5 và tăng i lên 6
6i=6falseVòng lặp chấm dứt

2. Một số lưu ý khi sử dụng for

Câu lệnh for có thể lồng nhau

if (n < 10 && m < 20)
{
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < m; j++)
		{
			cout<<i + j<<endl;
		}
	}
}

Trong câu lệnh for, có thể sẽ không có phần <khởi đầu>

int i;
for (i = 0; i < 10; i++){//có khởi tạo biến i=0
	cout<<i<<endl;
}
int i = 0;
for (; i < 10; i++){//không cần khởi tạo biến i
	cout<<i<<endl;
}

Trong câu lệnh for, có thể sẽ không có phần <bước nhảy>

int i;
for (i = 0; i < 10; i++){//có bước nhảy
	cout<<i<<endl;
}
for (i = 0; i < 10; )//không có bước nhảy
{
	cout<<i<<endl;
	i++;
}

Trong câu lệnh for, có thể sẽ không có phần <điều kiện lặp>

int i;
for (i = 0; i < 10; i++){//có điều kiện lặp
	cout<<i<<endl;
}
for (i = 0; ; i++){//không có điều kiện lặp, bị lặp vô hạn
	cout<<i<<endl;
}
for (i = 0; ; i++){//không có điều kiện lặp
	if (i >= 10)
		break;//thoát vòng lặp for
	cout<<i<<endl;
}

Không được thêm ; ngay sau lệnh for

for (i = 0; i < 10; i++);//không được có ; ở đây
{
	cout<<i<<endl;
}
for (i = 0; i < 10; i++)
{
};//không được có ; ở đây
{
	cout<<i<<endl;
}

Các thành phần chính gồm <khởi đầu>, <điều kiện lặp>, <bước nhảy> cách nhau bằng dấu ; Nếu có nhiều thành phần con trong mỗi thành phần chính thì được cách nhau bằng dấu ,

for (int i = 1, j = 2; i + j < 10; i++, j += 2){
	cout<<i + j<<endl;
}

Lưu ý: <điều kiện lặp> trong for nên giới hạn rõ ràng để tránh trường hợp lặp vô hạn.

5/5 - (1 bình chọn)
Bài trước và bài sau trong môn học<< Sử dụng vòng lặp do while và sự khác nhau với whileCách sử dụng câu lệnh break, continue và go to trong C++ >>
Chia sẻ trên mạng xã hội:

Tác giả Vinh Lê

Vinh Lê hiện đang là biên tập viên tại Góc Học IT.

Bài viết của Vinh Lê

Trả lời

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.