Accessing 2D Array Elements
Parte de la sección Lógica y Flujo del Journey de C# de Coddy — lección 3 de 66.
El acceso a los elementos de un array bidimensional utiliza una sintaxis similar a la de los arrays normales, pero requiere dos índices: uno para la fila y otro para la columna.
Nota: En C#, existen dos tipos de arrays multidimensionales: arrays rectangulares (int[,]) y arrays escalonados (jagged arrays) (int[][]). Esta lección trata sobre los arrays escalonados, donde cada fila es su propio array.
Crea una matriz escalonada con 3 filas y 4 columnas:
int[][] grid = new int[3][];
grid[0] = new int[4];
grid[1] = new int[4];
grid[2] = new int[4];Asigna un valor a una posición específica (índice de fila 1, índice de columna 2):
grid[1][2] = 42;Lee un valor de una posición específica (índice de fila 0, índice de columna 3):
int value = grid[0][3];Dado que los índices comienzan en 0, el índice de fila 0 es la 1.ª fila y el índice de columna 3 es la 4.ª columna.
Recuerda que los índices de los arreglos comienzan en 0, por lo que los rangos de índices válidos son:
- Filas: índice 0 a 2 (para un arreglo de 3 filas — la 1.ª fila es el índice 0, la 2.ª es el índice 1, la 3.ª es el índice 2)
- Columnas: índice 0 a 3 (para un arreglo de 4 columnas — la 1.ª columna es el índice 0, la 2.ª es el índice 1, y así sucesivamente)
grid[3][2]), obtendrás una IndexOutOfRangeException.Desafío
IntermedioEscribe un método llamado getElement que reciba tres argumentos:
- Un arreglo de enteros bidimensional (
int[][] matrix) - Un índice de fila (
int row) - Un índice de columna (
int col)
El método debe devolver el elemento en la posición especificada si los índices son válidos. Si cualquiera de los índices está fuera de rango, el método debe devolver -1.
Pruébalo tú mismo
public class GetElement
{
public static int getElement(int[][] array, int row, int col)
{
// 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
1Multi-dimensional Arrays
2D Arrays BasicsDeclaring and Initializing 2DAccessing 2D Array ElementsNested Loops with 2D ArraysJagged ArraysCommon Matrix OperationsRecap - Multi-dimensional4Flow Control Techniques
Early ReturnsGuard ClausesJump Statements (goto)Break and ContinueFlatten Nested Conditionals7Logical Operators Advanced
Short-Circuit EvaluationConditional Logical OperatorsOperator PrecedenceRecap - Advanced Operators2Advanced Decision Making
Multiple ConditionsComplex Boolean LogicIf vs. Switch ComparisonNested Switch StatementsRecap - Advanced Decisions5Exception Handling
Try-Catch BasicsException TypesMultiple Catch BlocksWorking with FilesFinally BlockUsing vs. Try-FinallyCustom ExceptionsRecap - Error Handling3Loop Enhancements
Loop PerformanceIterating ComplexEach Loop TypeRefactoring LoopsRecap - Optimized Loops6Null Handling
Null Reference BasicsNullable Value TypesNull Checking PatternsDefensive ProgrammingRecap - Null Safety