Vòng lặp for trong C++

Trong bài này chúng ta sẽ cùng tìm hiểu về vòng lặp for trong C++.

Vậy vòng lặp for trong C++ là gì? Sử dụng vòng lặp for trong C++ như thế nào? Chúng ta sẽ cùng tìm hiểu trong nội dung tiếp theo nhé.

1. 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.

Cú pháp

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++.

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:

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

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:

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 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:

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:

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. 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é.

Khóa học nên xem

Nguồn: freetuts.net