Bucles anidados
Parte de la sección Fundamentals del Journey de C de Coddy — lección 43 de 63.
Los bucles anidados son bucles colocados dentro de otro bucle. Para cada iteración del bucle externo, el bucle interno se ejecuta por completo.
Crea un bucle externo que se ejecute 3 veces:
for (int i = 0; i < 3; i++) {
// Código del bucle externo aquí
}Agrega un bucle interno que se ejecute 2 veces por cada iteración del bucle externo:
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
printf("%d,%d ", i, j);
}
printf("\n");
}La salida será:
0,0 0,1 0,2
1,0 1,1 1,2 Observa cómo el bucle interno completa sus iteraciones antes de que el bucle externo pase a su siguiente iteración.
Desafío
FácilCrea un programa que imprima un patrón rectangular de asteriscos (*) basado en el número de filas y columnas proporcionado por el usuario.
Tu programa debe:
- Leer dos números enteros del usuario: rows y columns.
- Usar bucles anidados para imprimir un patrón rectangular de asteriscos donde el bucle externo maneja las filas y el bucle interno maneja las columnas.
- Imprimir una nueva línea después de cada fila.
Por ejemplo, si la entrada es 3 filas y 4 columnas, el resultado debería ser:
****
****
****Hoja de referencia
Los bucles anidados son bucles colocados dentro de otro bucle. Por cada iteración del bucle externo, el bucle interno se ejecuta completamente.
Estructura básica de un bucle anidado:
for (int i = 0; i < outer_limit; i++) {
for (int j = 0; j < inner_limit; j++) {
// Código del bucle interno
}
// Código del bucle externo
}Ejemplo con salida:
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
printf("%d,%d ", i, j);
}
printf("\n");
}Salida:
0,0 0,1 0,2
1,0 1,1 1,2El bucle interno completa todas sus iteraciones antes de que el bucle externo pase a su siguiente iteración.
Pruébalo tú mismo
#include <stdio.h>
int main() {
int rows, columns;
scanf("%d", &rows);
scanf("%d", &columns);
// Escribe tu código aquí para imprimir el patrón
return 0;
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentals
2Variables
Tipos de datosEnterosFloat - DoubleCaracteresBooleanosConstantesConceptos básicos de printfReglas para nombrar variablesConversión de tipos Parte 1Conversión de tipos Parte 2Desafío de repaso3Operadores
Operadores aritméticosOperador de móduloIncremento/DecrementoOperadores de asignaciónOperadores relacionalesOperadores lógicos - Parte 1Operadores lógicos - Parte 2Operadores lógicos - Parte 3Desafío de repaso