Accessing 2D Array Elements
CoddyのC#ジャーニー「ロジックとフロー」セクションの一部 — レッスン 3/66。
2次元配列の要素へのアクセスは、通常の配列と同様の構文を使用しますが、行用と列用の2つのインデックスが必要です。
注意: C#には、2種類の多次元配列があります。矩形配列 (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 という名前のメソッドを作成してください。このメソッドは3つの引数を受け取ります:
- 2次元整数配列 (
int[][] matrix) - 行のインデックス (
int row) - 列のインデックス (
int col)
インデックスが有効な場合、メソッドは指定された位置にある要素を返す必要があります。いずれかのインデックスが範囲外の場合は、メソッドは -1 を返す必要があります。
自分で試してみよう
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