Menu
Coddy logo textTech

Bucle anidado

Parte de la sección Fundamentos del Journey de C# de Coddy — lección 46 de 69.

Un bucle anidado es simplemente un bucle dentro de otro bucle. El bucle interno completará todas sus iteraciones por cada iteración individual del bucle externo.

Una buena analogía para esto es un reloj: por cada hora (bucle externo), el minutero (bucle interno) debe completar su ciclo completo de 60 minutos.

Ejemplo de un bucle anidado:

for (int x = 0; x < 2; x++) {
	for (int y = 0; y < 2; y++) {
		Console.WriteLine(x + " " + y);
	}
}

// Esto mostrará:
// 0 0
// 0 1
// 1 0
// 1 1

El bucle externo (x) se ejecuta dos veces, y por cada una de esas veces, el bucle interno (y) también se ejecuta dos veces — lo que nos da 4 líneas de salida en total.

En el ejemplo anterior, Console.WriteLine() imprime cada resultado en una nueva línea.
Si quieres imprimir sin pasar a una nueva línea, usa Console.Write() en su lugar:

Console.Write("Hello ");
Console.Write("World");
// Salida: Hello World

Ambos métodos son útiles — Console.WriteLine() añade una nueva línea al final, mientras que Console.Write() mantiene el cursor en la misma línea.

challenge icon

Desafío

Principiante

Escribe un programa que imprima un rectángulo de asteriscos (*) con un ancho y alto dados.

Entrada: Dos números enteros: width y height

Por ejemplo:

Si width = 5 y height = 3, la salida debería ser:

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

Si width = 4 y height = 6, la salida debería ser:

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

Hoja de referencia

Un bucle anidado es un bucle dentro de otro bucle. El bucle interno completa todas sus iteraciones por cada iteración individual del bucle externo.

Ejemplo de bucles anidados:

for (int x = 0; x < 2; x++) {
	for (int y = 0; y < 2; y++) {
		Console.WriteLine(x + " " + y);
	}
}

// Salida:
// 0 0
// 0 1
// 1 0
// 1 1

El bucle externo se ejecuta dos veces, y por cada iteración, el bucle interno se ejecuta dos veces por completo.

Impresión de salida:
Console.WriteLine() imprime un valor y se mueve a una nueva línea.
Console.Write() imprime un valor sin moverse a una nueva línea, por lo que la siguiente salida continúa en la misma línea.

Pruébalo tú mismo

using System;

public class Program {
    public static void Main(string[] args) {
        int width = int.Parse(Console.ReadLine());
        int height = int.Parse(Console.ReadLine());
        // Escribe tu código debajo

    }
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos