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

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

5.0 (6 đánh giá)
Tạo bởi Kteam Cập nhật lần cuối 00:08 28-08-2020 137.950 lượt xem 9 bình luận
Tác giả/Dịch giả: Kteam
Học nhanh

Danh sách bài học

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

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:

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


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:

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

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:

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


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 xuống

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 likeshare để ủ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ê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.

Nội dung bài viết

Tác giả/Dịch giả

Khóa học

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

Hiện nay, C++ đã là cái tên rất quen thuộc trong ngành lập trình. Mặc dù C++ là ngôn ngữ lập trình đã ra đời khá lâu, nhưng không phải ai cũng có cơ hội để tìm hiểu về nó.

Vì vậy, Kteam đã xây dựng lên khóa học LẬP TRÌNH C++ CĂN BẢN để cung cấp một lượng kiến thức về ngôn ngữ C++ nói riêng, và các khái niệm khác trong lập trình nói chung.

Nội dung khóa học sẽ được phân tách một cách chi tiết, nhằm giúp các bạn dễ hiểu và thực hành được ngay. 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++.

Đánh giá

Keny7503 đã đánh giá 16:38 13-11-2021

NCMK04 đã đánh giá 10:26 24-08-2021

Lê Hoàng Nguyên đã đánh giá 17:37 03-08-2021

ChuChu đã đánh giá 14:22 22-08-2020

hyngungoc đã đánh giá 17:34 19-08-2020

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
PhamVanA đã bình luận 09:36 02-11-2020

Bài học rất hay, dễ hiểu. 

Nếu có thêm một vài bài tập ứng dụng để luyện tập thì tuyệt cú mèo. 

Cám ơn HowKteam, cám ơn Nguyen Doan Ngoc Giau để chia sẻ. 

Duyxxx đã bình luận 11:11 17-06-2020

Anh cho em hỏi cách thức hoạt động của vòng for lồng với ạ. Em vẫn chưa hiểu được nó sẽ chạy như thế nào, mong anh giải thích giúp em!

 

nguyenkhiem10072003 đã bình luận 18:44 13-10-2019

có thể dùng biến ký tự char để chạy vòng for ko ạ

 

minhtuan1709 đã bình luận 19:45 01-10-2019

#include <bits/stdc++.h>
using namespace std;
int main()
{
    long long a[1000] , n , i , j , count;
    cin >> n;
    for (i = 0 ; i < n ; i ++)
    {
        cin >> a[i];
    }
       \**  for (i = 0 ; i < n - 1 ; i ++)
        {
            if ((a[i] % 2 == 0) && (a[i + 1] % 2 == 0))
            {
                a[i] = a[i] + a[i + 1];
                for (j = i + 1 ; j < n - 1 ; j ++)
                {
                    a[j] = a[j + 1];
                }
                n --;
            }
        }   **/
    for (i = 0 ; i < n ; i ++)
    {
        cout << a[i] << ' ';
    }
    return 0;
}
Cho em hỏi làm thế nào để chạy đoạn code em comment nhiều lần cho đến khi không còn hai số chẵn đứng cạnh nhau ?

Không có video.