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:
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.
#include
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:
#include
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:
#include
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:
#include
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:
#include
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:
#include
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:
#include
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é.
Nguồn:https://freetuts.net