Bucle anidado de C ++ (con ejemplos)

En este tutorial, aprenderemos sobre los bucles anidados en C ++ con la ayuda de ejemplos. También aprenderemos sobre romper y continuar en Nested Loop.

Un bucle dentro de otro bucle se denomina bucle anidado. Tomemos un ejemplo

Supongamos que queremos recorrer cada día de la semana durante 3 semanas.

Para lograr esto, podemos crear un ciclo para iterar tres veces (3 semanas). Y dentro del ciclo, podemos crear otro ciclo para iterar 7 veces (7 días). Así es como podemos usar bucles anidados.

Ejemplo: anidado para bucle

 // 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; )

Salida

 Semana: 1 Día: 1 Día: 2 Día: 3… Semana: 2 Día: 1 Día: 2 Día: 3…… 

Podemos crear bucles anidados con while y do… while de forma similar.

Ejemplo: visualización de un patrón

 // 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; )

Salida

 * * * * * * * * * * * * * * * 

En este programa, el bucle exterior itera de 1a filas.

El bucle interno itera de 1a columnas. Dentro del bucle interno, imprimimos el personaje '*'.

romper y continuar Inside Nested Loops

Cuando usamos una instrucción break dentro del ciclo interno, termina el ciclo interno pero no el ciclo externo. Por ejemplo,

Ejemplo: romper bucles anidados internos

 #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; ) ) )

Salida

 Semana: 1 Día: 1 Día: 2… Semana: 2 Semana: 3 Día: 1 Día: 2… 

Este programa no ejecuta el ciclo interno cuando el valor de i es, es 2decir, no imprime los días de la 2ª semana. El bucle exterior que imprime las semanas no se ve afectado.

De manera similar, cuando usamos una instrucción continue dentro del ciclo interno, se salta solo la iteración actual del ciclo interno. El bucle exterior no se ve afectado. Por ejemplo,

Ejemplo: continuar dentro de bucles anidados

 #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; ) ) )

Salida

 Semana: 1 Día: 2 Día: 4 Día: 6 Semana: 2 Día: 2 Día: 4 Día: 6 Semana: 3 Día: 2 Día: 4 Día: 6

Este programa imprime solo aquellos días que son pares.

Siempre que days_in_week sea impar, la continuedeclaración omite esa iteración del ciclo interno.

Articulos interesantes...