2D配列要素へのアクセス
CoddyのC#ジャーニー「ロジックとフロー」セクションの一部。レッスン 3/66。
2D配列の要素へのアクセスには通常の配列と似た構文を使用しますが、2つのインデックスが必要です。1つは行用、もう1つは列用です。
注: 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];特定の位置(row index 1、column index 2)に値を代入します:
grid[1][2] = 42;特定の位置(row index 0、column index 3)から値を読み取ります。
int value = grid[0][3];index は 0 から始まるため、row index 0 は 1 行目で、column index 3 は 4 列目です。
array の index は 0 から始まることを覚えておいてください。そのため、有効な index の範囲は次のとおりです:
- 行:index 0 から 2 まで(3 行の array の場合:1 行目は index 0、2 行目は index 1、3 行目は index 2)
- 列:index 0 から 3 まで(4 列の array の場合:1 列目は index 0、2 列目は index 1、以下同様)
grid[3][2]など)にアクセスしようとすると、IndexOutOfRangeExceptionが発生します。チャレンジ
中級3つの引数を受け取る、getElementという名前のメソッドを記述してください:
- 2D整数配列(
int[][] matrix) - 行インデックス(
int row) - 列インデックス(
int col)
インデックスが有効な場合、メソッドは指定された位置の要素を返す必要があります。いずれかのインデックスが範囲外の場合、メソッドは -1 を返す必要があります。
自分で試してみよう
public class GetElement
{
public static int getElement(int[][] array, int row, int col)
{
// ここにコードを書いてください
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
自分で練習してみよう: C#オンラインコンパイラ