Trong hướng dẫn này, chúng ta sẽ tìm hiểu về các vòng lặp lồng nhau trong C ++. Chúng ta sẽ học cách sử dụng các vòng lặp for, while và do… while lồng nhau trong một chương trình.
Một vòng lặp trong vòng lặp khác được gọi là vòng lặp lồng nhau. Hãy lấy một ví dụ,
Giả sử chúng ta muốn lặp lại từng ngày trong tuần trong 3 tuần.
Để đạt được điều này, chúng ta có thể tạo một vòng lặp lồng nhau để lặp lại ba lần (3 tuần). Và bên trong vòng lặp, chúng ta có thể tạo một vòng lặp khác để lặp lại 7 lần (7 ngày). Ví dụ,
Ví dụ: Lồng nhau cho Vòng lặp
// C++ program to display 7 days of 3 weeks #include using namespace std; int main() ( int weeks = 3, days_in_week = 7; for (int i = 1; i <= weeks; ++i) ( cout << "Week: " << i << endl; for (int j = 1; j <= days_in_week; ++j) ( cout << " Day:" << j << endl; ) ) return 0; )
Đầu ra
Tuần: 1 Ngày: 1 Ngày: 2 Ngày: 3… Tuần: 2 Ngày: 1 Ngày: 2 Ngày: 3……
Chúng ta có thể tạo các vòng lặp lồng nhau với while và do… while theo cách tương tự.
Ví dụ: Hiển thị một mẫu
// C++ program to display a pattern // with 5 rows and 3 columns #include using namespace std; int main() ( int rows = 5; int columns = 3; for (int i = 1; i <= rows; ++i) ( for (int j = 1; j <= columns; ++j) ( cout << "* "; ) cout << endl; ) return 0; )
Đầu ra
* * * * * * * * * * * * * * * *
Trong chương trình này, vòng lặp bên ngoài lặp lại từ i == 1
đến i == rows
.
Vòng lặp bên trong lặp từ j == 1
đến j == columns
. Bên trong vòng lặp bên trong, chúng tôi in ký tự '*'
.
ngắt và tiếp tục Bên trong Vòng lặp lồng nhau
Khi chúng ta sử dụng một câu lệnh break bên trong vòng lặp bên trong, nó sẽ kết thúc vòng lặp bên trong nhưng không kết thúc vòng lặp bên ngoài. Ví dụ,
int weeks = 3, days_in_week = 7; for (int i = 1; i <= weeks; ++i) ( cout << "Week: " << i << endl; for (int j = 1; j <= days_in_week; ++j) ( // break during the 2nd week if (i == 2) ( break; ) cout << " Day:" << j << endl; ) )
Đầu ra
Tuần: 1 Ngày: 1 Ngày: 2… Tuần: 2 Tuần: 3 Ngày: 1 Ngày: 2…
Chương trình này không chạy vòng lặp bên trong khi giá trị của i là 2
nó không in các ngày của tuần thứ 2. Vòng lặp bên ngoài in các tuần không bị ảnh hưởng.
Tương tự, khi chúng ta sử dụng câu lệnh continue bên trong vòng lặp bên trong, nó chỉ bỏ qua lần lặp hiện tại của vòng lặp bên trong. Vòng ngoài không bị ảnh hưởng. Ví dụ,
int weeks = 3, days_in_week = 7; for (int i = 1; i <= weeks; ++i) ( cout << "Week: " << i << endl; for (int j = 1; j <= days_in_week; ++j) ( // continue if the day is an odd number if (j%2 != 0) ( continue; ) cout << " Day:" << j << endl; ) )
Đầu ra
Tuần: 1 Ngày: 2 Ngày: 4 Ngày: 6 Tuần: 2 Ngày: 2 Ngày: 4 Ngày: 6 Tuần: 3 Ngày: 2 Ngày: 4 Ngày: 6
Chương trình này chỉ in những ngày chẵn.
Bất cứ khi nào days_in_week là số lẻ, continue
câu lệnh sẽ bỏ qua bước lặp đó của vòng lặp bên trong.