Nested Loops with 2D Arrays
CoddyのC#ジャーニー「ロジックとフロー」セクションの一部 — レッスン 4/66。
C# で 2D 配列 (jagged arrays) を扱う際には、各行と各列をイテレートするためにネストしたループをよく使用します。これにより、配列のすべての要素にアクセスまたは変更することができます。
C# における 2 次元配列用の典型的なネストしたループの構造は以下の通りです:
for (int i = 0; i < array.Length; i++) {
// 外側のループは行を繰り返します
for (int j = 0; j < array[i].Length; j++) {
// 内側のループは列を繰り返します
// array[i][j] にアクセスまたは変更します
}
}外側のループは行を繰り返し、内側のループは各行の列を繰り返します。このようにして、array[i][j] を使用して 2 次元配列の各要素にアクセスできます。
チャレンジ
簡単printMatrix という名前のメソッドを作成してください。このメソッドは、整数型の 2D 配列(jagged array)を引数として受け取り、その要素をマトリックス形式で出力します。配列の行と列をイテレートするためにネストしたループを使用してください。各要素の後にスペースを印刷してください(各行の最後の要素も含む)、その後各行の後に改行を印刷してください。例えば、行
[1, 2, 3] の場合、出力は 1 2 3 (末尾にスペースあり)、その後に改行してください。チートシート
C# で 2 次元配列(ジャグ配列)を反復処理するためにネストしたループを使用します:
for (int i = 0; i < array.Length; i++) {
// Outer loop iterates over rows
for (int j = 0; j < array[i].Length; j++) {
// Inner loop iterates over columns
// Access or modify array[i][j]
}
}外側のループは array.Length を使用して行を反復処理し、内側のループは array[i].Length を使用して列を反復処理します。要素には array[i][j] でアクセスします。
自分で試してみよう
// クラス内にのみコードを書いてください。Main() やこのクラスの外側のコードは書かないでください。
using System;
class PrintMatrix
{
public static void printMatrix(int[][] matrix)
{
// ここにコードを書いてください
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
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