In questo tutorial, impareremo a conoscere i cicli annidati in C ++ con l'aiuto di esempi. Impareremo anche come interrompere e continuare in Nested Loop.
Un ciclo all'interno di un altro ciclo è chiamato ciclo annidato. Facciamo un esempio,
Supponiamo di voler scorrere ogni giorno della settimana per 3 settimane.
Per ottenere ciò, possiamo creare un ciclo per iterare tre volte (3 settimane). E all'interno del ciclo, possiamo creare un altro ciclo per iterare 7 volte (7 giorni). Ecco come possiamo usare i cicli annidati.
Esempio: annidato per ciclo
// 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; )
Produzione
Settimana: 1 Giorno: 1 Giorno: 2 Giorno: 3 … Settimana: 2 Giorno: 1 Giorno: 2 Giorno: 3 … …
Possiamo creare cicli annidati con while e do … mentre in modo simile.
Esempio: visualizzazione di un motivo
// 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; )
Produzione
* * * * * * * * * * * * * * *
In questo programma, il ciclo esterno itera da 1
a righe.
Il ciclo interno itera da 1
a colonne. All'interno del ciclo interno, stampiamo il personaggio '*'
.
interrompere e continuare all'interno di cicli annidati
Quando usiamo un'istruzione break all'interno del ciclo interno, termina il ciclo interno ma non il ciclo esterno. Per esempio,
Esempio: interrompi i cicli annidati
#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) ( // break during the 2nd week if (i == 2) ( break; ) cout << " Day:" << j << endl; ) ) )
Produzione
Settimana: 1 Giorno: 1 Giorno: 2 … Settimana: 2 Settimana: 3 Giorno: 1 Giorno: 2 …
Questo programma non esegue il ciclo interno quando il valore di i è 2
cioè non stampa i giorni della 2a settimana. Il ciclo esterno che stampa le settimane rimane inalterato.
Allo stesso modo, quando usiamo un'istruzione continue all'interno del ciclo interno, salta solo l'iterazione corrente del ciclo interno. Il ciclo esterno non è influenzato. Per esempio,
Esempio: continuare all'interno di cicli annidati
#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) ( // continue if the day is an odd number if (j % 2 != 0) ( continue; ) cout << " Day:" << j << endl; ) ) )
Produzione
Settimana: 1 Giorno: 2 Giorno: 4 Giorno: 6 Settimana: 2 Giorno: 2 Giorno: 4 Giorno: 6 Settimana: 3 Giorno: 2 Giorno: 4 Giorno: 6
Questo programma stampa solo i giorni pari.
Ogni volta che days_in_week è dispari, l' continue
istruzione salta quell'iterazione del ciclo interno.