Introducción al bucle anidado en C++

Introducción al bucle anidado en C++

Un bucle anidado es un bucle en el que un bucle reside dentro de otro bucle donde el bucle interior se ejecuta primero, satisfaciendo todo el conjunto de condiciones que prevalecían dentro del bucle seguido por un conjunto de condiciones del bucle exterior. La ejecución de declaraciones dentro del ciclo fluye de manera que el ciclo interno del ciclo anidado se declara, inicializa y luego se incrementa. Una vez que todas las condiciones dentro del ciclo interno se cumplen y se vuelven verdaderas, se mueve para buscar el ciclo externo. A menudo se le llama "bucle dentro de un bucle".

Sintaxis de bucle anidado en C++

La siguiente es la sintaxis:

Comienza tu curso de desarrollo de software gratuito

Desarrollo web, lenguajes de programación, pruebas de software y otros

1. Sintaxis de Nested for Loop

for (initialization; condition; increment) {
for (initialization; condition; increment) {
// set of statements for inner loop
}
//set of statement for outer loop
}

2. Sintaxis del ciclo while anidado

while(condition) {
while(condition) {
// set of statement of inside while loop
}
//set of statement for outer while loop
}

3. Sintaxis del bucle Do-While anidado

do {
while(condition) {
for (initialization; condition; increment) {
//set of statement of inside do-while loop
}
// set of statement of inside do-while loop
}
//set of statement of outer do-while loop
} while(condition);

Explicación:

En cualquier ciclo, la primera ejecución ocurrirá para el conjunto de instrucciones del ciclo interno. Si la condición se cumple y es verdadera, volverá a entrar y cumplirá la segunda condición. Si eso se vuelve falso, buscará el bucle externo e intentará satisfacer todas las condiciones. De esta manera, el flujo continúa. Además, no es obligatorio que el bucle se coloque dentro del bucle del mismo género. Puede ser cualquier bucle, lo que significa que cualquier bucle puede colocarse dentro de cualquier bucle.

Diagrama de flujo

A continuación se muestra el diagrama de flujo de un bucle anidado diferente:

1. Diagrama de flujo del ciclo while anidado

Explicación: 

Inicialmente, se proporciona una instrucción de condición en el ciclo while; si la condición de la declaración de condición del ciclo interno es verdadera, entonces la ejecución del ciclo continuará con la misma condición del ciclo interno formando un ciclo tan pronto como encuentre que la condición es falsa, saldrá del ciclo while interno y buscará el ciclo externo condición. Si la condición del bucle externo resulta ser verdadera, ejecutará todos los conjuntos de declaraciones e información. Después de seguir todo el conjunto de instrucciones, se volverá falso y el bucle saldrá al control del programa principal diciendo end while loop.

2. Bucle Do-While anidado

Explicación:

Se proporciona una declaración como entrada seguida de una condición que verifica si cumple la condición o no; si cumple la condición, entonces volverá a ocurrir un bucle; si no, saldrá del ciclo y verificará si hay una condición falsa, luego, mientras el ciclo finaliza, nuevamente se ejecuta un ciclo más que también seguirá el patrón similar de ejecución.

3. Para bucle

Explicación:

Un bucle for incluye la inicialización de la variable seguida de la condición 1; si la condición 1 se cumple, buscará la segunda condición si eso también se cumple, se incrementará y luego, cuando la condición se cumple y se vuelve verdadera, entonces busca el nuevo conjunto de declaraciones, siguiendo el mismo flujo de ejecución. Una vez que la condición se vuelve falsa, sale del bucle y busca una declaración de fin de for, volviendo a la condición principal de la ejecución del programa completo.

¿Cómo funciona el bucle anidado en C++?

Los bucles juegan un papel fundamental en cualquier lenguaje de programación; lo mismo sucede en el caso de C++. Cuando un bucle reside dentro de otro bucle, se denomina anidamiento. Cuando enlazamos dos bucles juntos, es decir, una especie de anidamiento, entonces el bucle externo toma el control de la cantidad de veces que funciona el bucle interno y se encarga de toda la manipulación y el cálculo.

Ejemplos de bucle anidado en C++

A continuación se muestran ejemplos de bucle anidado en C++:

Ejemplo #1

Bucle anidado con un bucle while para obtener todos los números del 1 al 20.

Código:

#include <iostream>
int main () {
using namespace std;
int a = 1;
while (a <= 20) {
cout << a << endl;
a++;
}
return 0;
}

Salida:

Ejemplo #2

Programa con un bucle anidado while para verificar si el número es par o impar.

Código:

#include <iostream>
int main () {
using namespace std;
int choose = 1;
while (choose == 1) {
int b;
cout << "Enter a number to verify odd or even" << endl;
cin >> b;
if (b%2 == 0) {
cout << " Number is even" << endl;
}
else {
cout << " Number is odd" << endl;
}
cout << "To check for more: 1 for yes and 0 for no" << endl;
cin >> choose;
}
cout << "All numbers are verified" << endl;
return 0;
}

Salida:

Ejemplo #3

Programa con un bucle for anidado para calcular la suma de números dados dentro del rango especificado.

Código:

#include <iostream>
int main () {
using namespace std;
int sum = 0, c, d;
for (c = 0; c < 10; c++) {
cout << "Enter the number" << endl;
cin >> d;
sum = sum + d;
}
cout << "Sum is " << sum << endl;
return 0;
}

Salida:

Ejemplo #4

Programa para imprimir los números usando un bucle do-while.

Código:

# include<iostream>
int main () {
using namespace std;
int k = 1;
do {
cout << k << endl;
k++;
} while (k <= 15);
return 0;
}

Salida:

Ejemplo #5

Programa para obtener la tabla de multiplicar de un número dado en formato m*n usando bucle for anidado.

Código:

#include <iostream>
int main () {
using namespace std;
int m;
int n;
for (m = 10; m <= 11; m++) {
cout << "Table of " << m << endl;
for (n = 1; n <= 10; n++) {
cout << m << "*" << n << "=" << (m*n) << endl;
}
}
return 0;
}

Salida:

Conclusión

Así, anidar en cualquier lenguaje de programación gira en torno al mismo concepto:un bucle dentro del bucle. El control del bucle interior está a cargo de un bucle exterior que también se puede proporcionar con un rango, y no es obligatorio poner el bucle bajo algún formato del bloque definido. El anidamiento se puede realizar dentro de cualquier bloque de código, para el bucle de anidamiento o mientras el bucle de anidamiento se encarga del flujo de declaraciones en función de la satisfacción de las condiciones.