STARTING
CONTROL STATEMENT
FUNCTION
ARRAY & POINTER
OOP
STL
ITERATORS
OTHER FEATURES
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Vòng lặp for trong C++ (có bài tập thực hành)

Trong bài này chúng ta sẽ cùng tìm hiểu về vòng lặp for trong C++, kết thúc bài học mình cũng có soạn một số bài tập vòng lặp for trong C++ có lời giải nhé.

Vòng lặp là một khái niệm khá trừu tượng, nó thể hiện cho một hành động được lặp đi lặp lại nhiều lần và sẽ có một số lần lặp cụ thể.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Ví dụ hằng ngày các em học sinh sẽ đi học, đó là một hành động được lặp đi lặp lại nhiều lần trong 9 tháng, và điều kiện dừng vòng lặp là khi đến mùa hè. Đó là thực tế, còn trong lập trình C++ thì như thế nào? Chúng ta cùng tìm hiểu ngay nhé.

1. Cấu trúc vòng lặp for trong C++

Vòng lặp for trong C++ dùng để lặp lại một đoạn code nào đó theo số lần lặp nhất định. Thường thì ta sẽ biết trước được tổng số lần lặp, và giá trị lặp sẽ là tăng dần hoặc giảm dần theo một bước nhảy xác định.

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

Cú pháp của vòng lặp for trong C++ như sau:

Cú pháp
for ( init; condition; increment ) {
   statement(s);
}

Trong đó:

  • init: là tham số dùng để khai báo và khởi tạo biến điều khiển và chỉ được chạy một lần duy nhất trong vòng lặp for.
  • condition: là điều kiện để quyết định vòng lặp tiếp tục hay kết thúc.
  • increment: biến dùng để tăng số đếm vòng lặp.
  • statement: Các câu lệnh bên trong vòng lặp for sẽ được thực thi khi điều kiện đúng.

Cả 3 tham số này là không bắt buộc, chúng ta có thể bỏ trống bất cứ tham số nào. Tuy nhiên chúng ta không được bỏ dấu ; trong cú pháp của vòng lặp for.

Trước khi đi vào các ví dụ cụ thể chúng ta cùng tìm hiểu về luồng điều khiển của vòng lặp for trong cú pháp trên như sau:

  • Bước init được thực hiện trước tiên và chỉ được thực hiện đúng duy nhất một lần. Bước này cho phép bạn khai báo và khởi tạo giá trị cho biến điều khiển trong vòng lặp for.
  • Tiếp theo, kiểm tra condition. Nếu condition là đúng, phần thân của vòng lặp for sẽ được thực thi. Nếu condition là sai, phần thân của vòng lặp for sẽ không được thực thi và vòng lặp for kết thúc.
  • Sau khi phần thân của vòng lặp for được thực thi, thì luồng điều khiển sẽ nhảy trở lại câu lệnh increment.
  • Kiểm tra condition lại lần nữa. Nếu condition là đúng, thực thi đoạn code bên trong vòng lặp và quá trình lặp lại cứ tiếp tục (phần thân của vòng lặp, sau đó đến increment, và sau đó lại kiểm tra condition). Sau khi condition trở thành sai, vòng lặp for chấm dứt.

Để hiểu rõ hơn về luồng điều kiển của vòng lặp for trong C++. Chúng ta cùng xem lưu đồ hoạt động của nó trong phần tiếp theo nhé.

Lưu đồ hoạt động

Sau đây là lưu đồ hoạt động của vòng lặp for trong C++.

for PNG

2. Ví dụ vòng lặp for trong C++

Ví dụ 1: Mình sẽ lấy một ví dụ về vòng lặp for đơn giản nhất đó là in các giá trị từ 1 đến 4 ra màn hình.

Ví dụ
#include <iostream>
using namespace std;
 
int main () {
  
    for( int i = 1; i < 5; i = i + 1 ) {
	cout << "Gia tri cua bien i: " << i << endl;
    }
 
    return 0;
}

Và kết quả sau khi thực thi đoạn code trên:

ex for JPG

Mình xin được giải thích kết quả trên như sau:

  • Khởi tạo biến i = 1, kiểm tra điều kiện 1 < 5, điều kiện đúng nên thực thi đoạn code bên trong vòng lặp for
  • Tăng biến i lên 1, lúc này i = 2, kiểm tra điều kiện 2 < 5, điều kiện vẫn còn đúng nên tiếp tục thực thi đoạn code bên trong vòng lặp for
  • Tương tự tiếp tục tăng biến i lên 1, lúc này i = 3, 4, kiểm tra điều kiện 3, 4 < 5, điều kiện vẫn còn đúng nên tiếp tục thực thi đoạn code bên trong vòng lặp for
  • Khi biến i tăng lên bằng 5, kiểm tra điều kiện 5 < 5 là sai, nên kết thúc vòng lặp for.

3. Vòng lặp for lồng nhau trong C++

Một vòng lặp for nằm trong một vòng lặp for khác, chúng ta gọi đó là lồng lặp for lồng nhau. Chúng ta cùng xem ví dụ về vòng lặp for lồng nhau sau đây:

Ví dụ
#include <iostream>  
using namespace std;  
   
int main () {  
    for(int i=1;i<=3;i++) {      
        for(int j=1;j<=3;j++) {      
            cout << "Gia tri i = " << i << " , j = " << j<< "\n";      
        }     
    } 
    return 0;
} 

Và kết quả sau khi thực thi đoạn code trên:

for long nhau JPG

Các bạn có thể có 3, 4 hoặc nhiều hơn vòng lặp for lồng nhau như sau:

Ví dụ
#include <iostream>  
using namespace std;  
   
int main () {  
    for(int i=1;i<=3;i++) {   
        cout << "Vong lap for cap 1" << "\n";
        for(int j=1;j<=3;j++) {      
            cout << "Vong lap for cap 2" << "\n";
            for(int j=1;j<=3;j++) {      
                cout << "Vong lap for cap 3" << "\n";   
                for(int j=1;j<=3;j++) {      
                    cout << "Vong lap for cap 4" << "\n";      
                }  
            }  
        }     
    } 
    return 0;
} 

Tuy nhiên trong thực tế các bạn nên hạn chế dùng vòng lặp for lồng nhau vì nó làm chậm chương trình của các bạn.

4. Vòng lặp for bị lặp vô hạn

Nếu chúng ta sử dụng dấu chấm phẩy kép trong vòng lặp for, nó sẽ được thực hiện vô hạn lần. Chúng ta cùng xem ví dụ đơn giản sau:

Ví dụ
#include <iostream>  
using namespace std;  
   
int main () {  
    for (; ;) {    
         cout << "Vong lap vo han";    
    }    
}

Chúng ta cùng xem một ví dụ khác về vòng lặp for vô hạn nữa, đó là điều kiện luôn luôn đúng, ví dụ như sau:

Ví dụ
#include <iostream>  
using namespace std;  
   
int main () {
    for(int i=5;i>0;i++){      
        cout << "Vong lap for vo han"; 
    }  
} 

Lưu ý: Các bạn không nên sử dụng vòng lặp for vô hạn trong chương trình nhé, rất là quy hiểm. Để tránh vòng lặp for chạy vô hạn các bạn nên xem xét kỹ lưởng điều kiện dừng của vòng lặp, hãy chắc chắn rằng sau một số vòng lặp nhất định điều kiện dừng của các bạn đưa ra sẽ sai và kết thúc vòng lặp.

5. Khởi tạo nhiều biến điều khiển trong vòng lặp for

Chúng ta có thể khởi tạo giá trị cho nhiều biến điều khiển của vòng lặp for, các biến ngăn cách nhau bởi dấu phẩy như ví dụ sau đây:

Ví dụ
#include <iostream>  
using namespace std;  
   
int main () {
    for(int i = 1, j = 5, z = 1; i < 5; i++, j++, z++) {      
        cout << "Gia tri i = " << i << ", j = " << j << ", z = " << z <<endl;
    }  
} 

Và kết quả sau khi thực thi đoạn code trên:

for init JPG

6. Vòng lặp for bị khuyết các tham số

Chúng ta cùng xem một ví dụ đơn giản về vòng lặp for bị khuyết các tham số trong C++ như sau:

Ví dụ
#include <iostream>  
using namespace std; 
 
int main() { 
    int i = 1;
    cout << "Vong lap for thieu tham so thu nhat: " << endl; 
    for(;i<=3;i++){      
       cout << "Gia tri bien i = " << i << "\n";      
    } 
    
    cout << "Vong lap for thieu tham so thu ba: " << endl; 
    for(int j = 1;j <= 3;) {      
        cout << "Gia tri bien j = " << j << "\n"; 
        j++;
    }
    
    cout << "Vong lap for thieu tham so thu nhat va thu 3: " << endl; 
    int z = 1;
    for(;z <= 3;) {      
        cout << "Gia tri bien z = " << z << "\n";
        z++;
    } 
} 

Và kết quả của đoạn code trên:

t JPG

Lưu ý: Nếu vòng lặp for thiếu tham số thứ hai sẽ trở thành vòng lặp vô hạn như ở ví dụ 3.

7. Lặp qua các phần tử mảng bằng vòng lặp for C++

Mảng là một kiểu dữ liệu có nhiều phần tử, mỗi phần tử có một số chỉ mục duy nhất và được sắp xếp thứ tự tăng dần và bắt đầu từ 0. Vì vậy ta có thể sử dụng vòng lặp for để duyệt qua các phần tử một cách dễ dàng.

#include <iostream>
using namespace std;

int main()
{
    int numbers[6] = {1, 3, 5, 7, 9, 11};
    for (int i = 0; i < 6; i++){
	cout << numbers[i] << endl;   	
    }
    return 1;
}

Kết quả:

vong lap for lap mang JPG

Kết luận: Như vậy chúng ta đã tìm hiểu xong về vòng lặp for trong C++. Ý nghĩa, cấu trúc và cách sử dụng của vòng lặp for trong C++ thì khá đơn giản như mình đã giải thích ở trên. Vì vậy các bạn không cần phải lo lắng khi mới tiếp cận nhé. Một điểm cần lưu ý khi các bạn sử dụng vòng lặp for đó là các bạn hạn chế sử dụng vòng lặp for lồng nhau, và nên tránh vòng lặp for vô hạn nhé.

Trong bài học tiếp theo mình sẽ tìm hiểu về một loại vòng lặp khác trong C++ đó là vòng lặp while. Các bạn nhớ xem tiếp nhé.

7. Bài tập vòng lặp for trong C++

Cùng chuyên mục:

Cách nhân hai số trong ngôn ngữ C

Cách nhân hai số trong ngôn ngữ C

Cách cộng hai số nguyên trong C

Cách cộng hai số nguyên trong C

Tổng hợp hơn 1000 bài tập C / C++ có lời giải

Tổng hợp hơn 1000 bài tập C / C++ có lời giải

Bài này sẽ tổng hợp hơn 1000 bài tập C / C++ có lời giải…

Các hàm trong thư viện ctime C / C++

Các hàm trong thư viện ctime C / C++

Các hàm trong thư viện cstdio C / C++

Các hàm trong thư viện cstdio C / C++

Các hàm trong thư viện cctype C / C++

Các hàm trong thư viện cctype C / C++

Các hàm trong thư viện cstring C / C++

Các hàm trong thư viện cstring C / C++

Các hàm trong thư viện cstdlib C/C++

Các hàm trong thư viện cstdlib C/C++

Các hàm nhập xuất IO (iostream) trong C / C++

Các hàm nhập xuất IO (iostream) trong C / C++

Các hàm toán học (math) trong C / C++

Các hàm toán học (math) trong C / C++

Nếu bạn đang học C++ căn bản thì phải biết công dụng của những hàm…

Bài tập vòng lặp while và do while trong C++

Bài tập vòng lặp while và do while trong C++

Nếu một bài toán được giải bằng vòng lặp while thì bạn hoàn toàn có…

Bài tập vòng lặp for trong C++ có lời giải

Bài tập vòng lặp for trong C++ có lời giải

Vòng lặp for C++ rất quan trọng, nó được sử dụng rất nhiều khi xử…

Bài tập if else trong C++ (có đổi sang switch case)

Bài tập if else trong C++ (có đổi sang switch case)

Để thành thạo hai lệnh rẻ nhánh if else và switch case thì bạn phải…

Tìm hiểu cấu trúc mảng (array) trong C++

Tìm hiểu cấu trúc mảng (array) trong C++

Toán tử ba ngôi trong C++

Toán tử ba ngôi trong C++

Toán tử ba ngôi thực ra là cách rút gọn code của lệnh if else,…

Các toán tử trong C++

Các toán tử trong C++

Toán tử đóng vai trò rất quan trọng trong lập trình, nó giúp chúng ta…

Ngôn ngữ C++ là gì? Dùng làm gì trong công nghệ thông tin?

Ngôn ngữ C++ là gì? Dùng làm gì trong công nghệ thông tin?

C++ là một ngôn ngữ lập trình phổ biến và mạnh mẽ có kiểu dữ…

Đọc ghi file trong C

Đọc ghi file trong C

Đa số sinh viên Việt Nam học lập trình C là để luyện tư duy…

Kiểu Union trong C

Kiểu Union trong C

Union có cách khai báo giống như struct, nhưng kích thước của nó sẽ lấy…

Hàm đệ quy trong ngôn ngữ C

Hàm đệ quy trong ngôn ngữ C

Giải thuật đệ quy nói chung và trong ngôn ngữ C nói riêng thì hàm…

Top