Dalam tutorial ini, kita akan belajar tentang loop bersarang di C ++. Kita akan belajar menggunakan nested for, while dan do… while loop dalam sebuah program.
Sebuah loop dalam loop lain disebut loop bersarang. Mari kita ambil contoh,
Misalkan kita ingin mengulang setiap hari dalam seminggu selama 3 minggu.
Untuk mencapai ini, kita dapat membuat loop bersarang untuk melakukan iterasi tiga kali (3 minggu). Dan di dalam loop, kita dapat membuat loop lain untuk mengulang 7 kali (7 hari). Sebagai contoh,
Contoh: Bersarang untuk Loop
// 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; )
Keluaran
Minggu: 1 Hari: 1 Hari: 2 Hari: 3… Minggu: 2 Hari: 1 Hari: 2 Hari: 3……
Kita dapat membuat loop bersarang dengan while dan do… dengan cara yang serupa.
Contoh: Menampilkan Pola
// 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; )
Keluaran
* * * * * * * * * * * * * * *
Dalam program ini, loop luar melakukan iterasi dari i == 1
menjadi i == rows
.
Loop dalam melakukan iterasi dari j == 1
menjadi j == columns
. Di dalam loop dalam, kami mencetak karakter '*'
.
istirahat dan lanjutkan di dalam Nested Loops
Ketika kita menggunakan pernyataan break di dalam loop dalam, itu mengakhiri loop dalam tetapi bukan loop luar. Sebagai contoh,
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; ) )
Keluaran
Minggu: 1 Hari: 1 Hari: 2… Minggu: 2 Minggu: 3 Hari: 1 Hari: 2…
Program ini tidak menjalankan loop dalam ketika nilai i adalah, 2
yaitu tidak mencetak hari-hari dari minggu ke-2. Lingkaran luar yang mencetak minggu tidak terpengaruh.
Demikian pula, ketika kita menggunakan pernyataan lanjutkan di dalam loop dalam, itu melewatkan iterasi saat ini dari loop dalam saja. Loop luar tidak terpengaruh. Sebagai contoh,
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; ) )
Keluaran
Minggu: 1 Hari: 2 Hari: 4 Hari: 6 Minggu: 2 Hari: 2 Hari: 4 Hari: 6 Minggu: 3 Hari: 2 Hari: 4 Hari: 6
Program ini hanya mencetak hari-hari yang genap.
Kapan pun days_in_week ganjil, continue
pernyataan itu melewatkan iterasi loop dalam.