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 1El 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 WorldAmbos 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.
Desafío
PrincipianteEscribe 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 1El 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
}
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores Parte 1
Operadores aritméticosOperador de móduloIncremento/DecrementoPost-incremento/decrementoAtajos aritméticos7Entrada y Salida Básica
Salida BásicaInterpolación de CadenasLectura de EntradaParseoResumen - Hasta 120Resumen - Verdadero o Falso5Operadores Parte 2
Operadores de comparaciónOperadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 33Variables Parte 2
VarConstantesConvenciones de NomenclaturaResumen - Inicializar VariablesConversión de Tipos6Toma de decisiones
Sentencia IfIf - ElseSentencia SwitchOperador ternarioResumen - If ElseIf - Else anidados