Khóa học lập trình C++ căn bản

Serial dành cho những bạn chưa có bất kỳ kiến thức gì về lập trình, hoặc những bạn mất căn bản muốn lấy lại kiến thức nền tảng lập trình, cụ thể là C++.

Vòng lặp For trong C++ (For statements) Vòng lặp For trong C++ (For statements) Vòng lặp For trong C++ (For statements) Vòng lặp For trong C++ (For statements) Vòng lặp For trong C++ (For statements) 0/5 (207 reviews)

Vòng lặp For trong C++ (For statements)

Đã đăng 2017-03-03 19:17:54 bởi Kteam
0 bình luận 15651 lượt xem
Vòng lặp For trong C++ (For statements) 0 /5 stars (2 reviews)
 

Dẫn nhập

Ở bài học trước, mình đã chia cho các bạn về VÒNG LẶP DO WHILE TRONG C++ (Do while statements). Vòng lặp do-while sẽ được thực thi ít nhất 1 lần trước khi kiểm tra điều kiện. Ngoài ra, nó tương tự như vòng lặp while.

Trong bài hôm nay, mình sẽ giới thiệu cho các bạn về cấu trúc vòng lặp thứ 3, và cũng là một cấu trúc vòng lặp được sử dụng nhiều nhất trong C++, đó là Vòng lặp For trong C++ (For statements).


Nội dung

Để đọc hiểu bài này tốt nhất các bạn nên có kiến thức cơ bản về:

Trong bài ta sẽ cùng tìm hiểu các vấn đề:

  • Vòng lặp for (for statements)

Vòng lặp for (for statements)

Vòng lặp for là một cấu trúc lặp được sử dụng nhiều nhất trong ngôn ngữ C++, nó hoàn toàn có thể thay thế cho vòng lặp while. Lập trình viên thường sử dụng vòng lặp for khi biết trước số lần lặp của vòng lặp.

Cú pháp của vòng lặp for:

for (init-statement; condition-expression; end-expression)
{
    statements;
}

Để dễ hình dung, vòng lặp for sẽ tương đương với vòng lặp while bên dưới:

{ // note the block here
	init-statement;
	while (condition-expression)
	{
		statements;
		end-expression;
	}
} // variables defined inside the loop go out of scope here

 

Nguyên lý hoạt động của vòng lặp for gồm 3 bước thực thi:

  1. init-statement: phần này có mục đích định nghĩa và khởi tạo biến, chỉ được thực thi 1 lần duy nhất trong lần lặp đầu tiên.
  2. condition-expression: phần này gồm các biểu thức điều kiện, nếu biểu thức điều kiện đúng, các câu lệnh trong vòng lặp sẽ được thực thi.
  3. end-expression: phần này được thực thi cuối mỗi lần lặp, sau khi các câu lệnh trong vòng lặp for được thực thi. Phần này thường có mục đích tăng hoặc giảm giá trị các biến vòng lặp. Sau khi thực thi xong, vòng lặp quay lại kiểm tra điều kiện lặp ở bước 2.

Ví dụ: bên dưới là vòng lặp for có mục đích xuất các số từ 0 đến 9.

for (int count = 0; count < 10; ++count)
	cout << count << " ";

Chuyển ví dụ trên về vòng lặp while:

{ // dấu ngoặc này là bắt buộc
	int count = 0;
	while (count < 10)
	{
		cout << count << " ";
		++count;
	}
}

Output: 0 1 2 3 4 5 6 7 8 9

Trong ví dụ trên, vòng lặp for và while là như nhau, nhưng cách trình bày của vòng lặp while dài và phức tạp hơn. Cặp dấu ngoặc nhọn bên ngoài vòng lặp while là bắt buộc, vì biến count có phạm vi vòng lặp, nó sẽ bị hủy khi vòng lặp kết thúc.

Một số ví dụ khác về vòng lặp for:

#include <iostream>  
using namespace std;

int main() 
{
	for (int i = 10; i > 0; i--) {
		cout << i << ' ';
	}
	// Output: 10 9 8 7 6 5 4 3 2 1  

	for (int i = 10; i < 20; i = i + 2) {
		cout << i << ' ';
	}
	// Output: 10 12 14 16 18  

	return 0;
}

Lược bỏ các thành phần trong vòng lặp for

Vòng lặp for cho phép bỏ qua một hoặc tất cả các thành phần nếu không sử dụng chúng.

Ví dụ: bên dưới là chương trình xuất các số từ 0 đến 9.

#include <iostream>
using namespace std;

int main()
{
	int count = 0;
	for (; count < 10; )
	{
		cout << count << " ";
		++count;
	}

	return 0;
}

Output: 0 1 2 3 4 5 6 7 8 9

Trong ví dụ trên, biến vòng lặp được khởi tạo bên ngoài, và được tăng giá trị bên trong vòng lặp. Phần khởi tạo và cập nhật giá trị của vòng lặp được để trống.

Không như những vòng lặp khác, vòng lặp for có thể bỏ qua cả 3 thành phần, nó sẽ tạo ra 1 vòng lặp vô hạn:

for (;;)
{
    statements;
}

Cấu trúc trên tương đương với:

while (true)
{
	statements;
}

Ví dụ về vòng lặp for vô hạn:

for (;;)
{
	cout << "infinite loop";
}

Output:

howkteam

 


Nhiều thành phần trong mỗi phần của vòng lặp for

Trong trường hợp vòng lặp for cần làm việc với nhiều biến, có nhiều điều kiện dừng, hoặc có nhiều biến cần cập nhật giá trị, lập trình viên có thể sử dụng toán tử phẩy “,” để tạo thêm nhiều thành phần trong mỗi phần.

Ví dụ:

#include <iostream>
using namespace std;

int main()
{
	for (int i = 5, j = 10; i + j < 20; i++, j++) 
	{
		cout << i << " + " << j << " = " << (i + j) << '\n';
	}

	return 0;
}

Output:

howkteam

 

Trong ví dụ trên,  vòng lặp for có thể khai báo 2 biến i và j, sau đó cập nhật giá trị j và j sau mỗi lần lặp.

Chú ý: các biến khai báo trong phần init-statement phải có cùng kiểu dữ liệu, cách nhau bởi dấu phẩy “,”.


Vòng lặp lồng nhau (Nested for loops)

Tương tự như những vòng lặp khác, vòng lặp for có thể lồng vào trong một vòng lặp khác.

Ví dụ:

#include <iostream>
using namespace std;

int main()
{
	for (int i = 0; i <= 5; i++)
	{
		for (int j = 0; j <= i; j++)
		{
			cout << j << " ";
		}
		cout << endl;
	}

	return 0;
}

Output:

howkteam


Kết luận

Qua bài học này, bạn đã nắm rõ về Vòng lặp For trong C++ (For statements). Vòng lặp for là một cấu trúc lặp được sử dụng nhiều nhất trong ngôn ngữ C++, nó hoàn toàn có thể thay thế cho vòng lặp while. Lập trình viên thường sử dụng vòng lặp for khi biết trước số lần lặp của vòng lặp.

Trong bài tiếp theo, mình sẽ giới thiệu cho các bạn về 2 từ khóa liên quan mật thiết với cấu trúc vòng lặp, đó là TỪ KHÓA BREAK & CONTINUE.

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.



Tài liệu 

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Vòng lặp For trong C++ (For statements) dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên like hoặc +1 Google để ủng hộ Kteam và tác giả nhé! 


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần BÌNH LUẬN bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng. 

 

Chia sẻ:
Thảo luận Hỏi và đáp Báo lỗi bài viết
Hủy bỏ   hoặc  
Hủy bỏ   hoặc  
Hủy bỏ   hoặc  

Chiến dịch

Kteam - Howkteam Free Education