2D Arrays Basics
CoddyのC#ジャーニー「ロジックとフロー」セクションの一部 — レッスン 1/66。
C#において、ジャグ配列は配列の配列であり、グリッドや行列のような構造を形成します。これは行と列を持つテーブルのようなもので、各セルに値を保持できます。ジャグ配列は、チェス盤、座席表、グリッドベースのゲームなど、二次元的な関係を持つデータを表現するのに役立ちます。
C#でジャグ配列を宣言および初期化する方法は次のとおりです。
data_type[][] arrayName = new dataType[numberOfRows][];dataType: 配列が保持する要素の型(例: int、stringなど)。
arrayName: 配列に付ける名前。
numberOfRows: 配列の行数。
各行は、その後個別に初期化する必要があります:
arrayName[0] = new dataType[lengthOfFirstRow];
arrayName[1] = new dataType[lengthOfSecondRow];
// など...例えば、各行が4列を持つ3行の整数のジャグ配列を作成するには、次のように記述します。
int[][] matrix = new int[3][];
matrix[0] = new int[4];
matrix[1] = new int[4];
matrix[2] = new int[4];ジャグ配列を値で直接初期化することもできます:
int[][] matrix = new int[][] {
new int[] {1, 2, 3},
new int[] {4, 5, 6},
new int[] {7, 8, 9}
};注意: このプラットフォームは、C# 12より前のコンパイラを使用しています。C# 12で導入されたより短いコレクション式構文(例: int[][] matrix = [[1, 2], [3, 4]];)は、ここではサポートされていません。上記に示されている従来の new int[][] { ... } 初期化構文を使用してください。
チャレンジ
簡単以下の値を使用してジャグ配列を初期化してください:
5, 7, 10, 24, 41
86, 13, 683, 64, 13
42, 46, 791, 111, 9
86, 88, 1845, 5, 15897
9, 1, 5, 5, 6あなたのタスクは、これらの正確な値でジャグ配列を正しく初期化し、プログラムが行列を正しく出力するようにすることです。
注意: このプラットフォームは C# 12 より前のコンパイラを使用しています。C# 12 のコレクション式構文(例:int[][] matrix = [[1, 2], [3, 4]];)はサポートされていません。代わりに、従来の初期化構文を使用してください:int[][] matrix = new int[][] { new int[] {1, 2}, new int[] {3, 4} };
自分で試してみよう
using System;
class Program
{
static void Main(string[] args)
{
int[][] matrix = {
// ここにコードを記述してください
};
// 行列を表示します
int rows = matrix.Length;
for (int i = 0; i < rows; i++)
{
int cols = matrix[i].Length;
for (int j = 0; j < cols; j++)
{
Console.Write(matrix[i][j] + " ");
}
Console.WriteLine();
}
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
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