Bucles anidados con arrays 2D
Parte de la sección Lógica y Flujo del Journey de C# de Coddy. Lección 4 de 66.
Al trabajar con arreglos 2D (arreglos jagged) en C#, a menudo usamos bucles anidados para iterar sobre cada fila y cada columna, lo que nos permite acceder o modificar cada elemento en el arreglo.
Aquí tienes una estructura típica de bucles anidados para un array 2D en C#:
for (int i = 0; i < array.Length; i++) {
// Outer loop iterates over rows
for (int j = 0; j < array[i].Length; j++) {
// Inner loop iterates over columns
// Access or modify array[i][j]
}
}El bucle exterior itera sobre las filas, y el bucle interior itera sobre las columnas de cada fila. De esta manera, puedes acceder a cada elemento en el array 2D utilizando array[i][j].
Desafío
FácilprintMatrix que tome un arreglo 2D (matriz irregular) de enteros como argumento e imprima sus elementos en formato de matriz. Usa bucles anidados para iterar sobre las filas y columnas del arreglo.Imprime cada elemento seguido de un espacio (incluyendo el último elemento en cada fila), luego imprime una nueva línea después de cada fila. Por ejemplo, para la fila
[1, 2, 3], la salida debería ser 1 2 3 (con un espacio al final), seguida de una nueva línea.Pruébalo tú mismo
// Escribe tu código solo dentro de la clase. No escribas Main() ni ningún código fuera de esta clase.
using System;
class PrintMatrix
{
public static void printMatrix(int[][] matrix)
{
// Escribe tu código aquí
}
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Arrays multidimensionales
Conceptos básicos de arrays 2DDeclaración e inicialización de arrays 2DAcceso a elementos de arrays 2DBucles anidados con arrays 2DArrays irregularesOperaciones comunes con matricesRepaso: arrays multidimensionales4Técnicas de control de flujo
Retornos anticipadosCláusulas de guardaSentencias de salto (goto)Break y ContinueAplanar condicionales anidados7Operadores lógicos avanzados
Evaluación de cortocircuitoOperadores lógicos condicionalesPrecedencia de operadoresRepaso: operadores avanzados2Toma de decisiones avanzada
Múltiples condicionesLógica booleana complejaComparación entre If y SwitchSentencias Switch anidadasRepaso: decisiones avanzadas5Manejo de excepciones
Fundamentos de Try-CatchTipos de excepcionesMúltiples bloques CatchTrabajo con archivosBloque FinallyUso de Using frente a Try-FinallyExcepciones personalizadasRepaso: manejo de errores3Mejoras de bucles
Rendimiento de buclesIteración de estructuras complejasCada tipo de bucleRefactorización de buclesRepaso: bucles optimizados6Manejo de valores nulos
Conceptos básicos de referencias nulasTipos de valor anulablesPatrones de comprobación de valores nulosProgramación defensivaRepaso: seguridad frente a valores nulosPractica por tu cuenta: Compilador de C# online