Accessing 2D Array Elements
Coddy C# 여정의 논리 및 흐름 섹션에 포함된 레슨 — 66개 중 3번째.
2차원 배열의 요소에 접근하는 것은 일반 배열과 유사한 구문을 사용하지만, 행에 대한 하나와 열에 대한 하나의 두 인덱스가 필요합니다.
참고: C#에는 두 종류의 다차원 배열이 있습니다: 직사각형 배열 (int[,]) 및 가변 배열 (int[][]). 이 강의에서는 각 행이 자체 배열인 가변 배열을 다룹니다.
3행 4열의 가변 배열을 생성하세요:
int[][] grid = new int[3][];
grid[0] = new int[4];
grid[1] = new int[4];
grid[2] = new int[4];특정 위치(행 인덱스 1, 열 인덱스 2)에 값을 할당하세요:
grid[1][2] = 42;특정 위치(행 인덱스 0, 열 인덱스 3)에서 값을 읽기:
int value = grid[0][3];인덱스가 0부터 시작하므로, 행 인덱스 0은 1번째 행이고 열 인덱스 3은 4번째 열입니다.
배열 인덱스는 0부터 시작한다는 것을 기억하세요. 따라서 유효한 인덱스 범위는 다음과 같습니다:
- 행: 인덱스 0에서 2까지 (3행 배열의 경우 — 1번째 행은 인덱스 0, 2번째는 인덱스 1, 3번째는 인덱스 2)
- 열: 인덱스 0에서 3까지 (4열 배열의 경우 — 1번째 열은 인덱스 0, 2번째는 인덱스 1, 그리고 계속)
grid[3][2]), IndexOutOfRangeException이 발생합니다.챌린지
중급getElement이라는 이름의 메서드를 작성하세요. 이 메서드는 세 개의 인수를 받습니다:
- 2차원 정수 배열 (
int[][] matrix) - 행 인덱스 (
int row) - 열 인덱스 (
int col)
인덱스가 유효하면 지정된 위치의 요소를 반환해야 합니다. 인덱스가 범위를 벗어나면 -1을 반환해야 합니다.
치트 시트
2D 배열의 요소에 두 개의 인덱스를 사용하여 접근: [row][column]
2D 배열 생성:
int[][] grid = new int[3][];
grid[0] = new int[4];
grid[1] = new int[4];
grid[2] = new int[4];값 할당:
grid[1][2] = 42;값 읽기:
int value = grid[0][3];배열 인덱스는 0부터 시작합니다. 유효 범위를 벗어나는 요소에 접근하면 IndexOutOfRangeException이 발생합니다.
직접 해보기
public class GetElement
{
public static int getElement(int[][] array, int row, int col)
{
// 여기에 코드를 작성하세요
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리 및 흐름의 모든 레슨
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