多次元配列と多重ループ
多次元配列
インデックスが1つだけの配列を1次元配列といいます。

対して、インデックスが複数の配列を宣言することもできます。これを多次元配列といいます。


多次元配列の宣言方法
データ型[,] 変数名 = new データ型[要素数1, 要素数2];
int型の3×3の二次元配列を宣言する場合は以下のようになります。
int[,] data = new int[3, 3];
宣言と同時に初期値を渡す場合は以下のになります。
int[,] data = new[,]
{
{ 10, 11, 12 },
{ 20, 21, 22 },
};
多次元配列から値を取り出すのも、一次元配列とほぼ同じです。ブラケット構文で、それぞれの次元のインデックス番号を指定します。
Console.WriteLine(data[0, 1]);
多重ループ
ifと同様、繰り返し処理も入れ子構造にすることができます。
以下の例は九九の段を出力するプログラムです。
for(int i = 1; i < 10; i++) {
for(int j = 1; j < 10; j++) {
Console.Write($"{i * j, 2} ");
}
Console.WriteLine();
}
※$"{i * j, 2} "はi * jを最低でも2桁使って表示させる命令です。
forを使う際のカウンター変数はiからはじめj,k…とするのが一般的です。
多重ループは多次元配列と組み合わせて使うこともできます。
int[,] data = new int[,]
{
{ 1, 2 },
{ 3, 4 },
{ 5, 6 },
{ 7, 8 },
};
for(int i = 0; i < data.GetLength(0); i++)
{
for(int j = 0; j < data.GetLength(1); j++)
{
Console.Write($"{data[i, j]} ");
}
Console.WriteLine();
}
詳しくは以下を参照してください。
課題
レベルアップ問題集 > 二重ループメニュー > 二次元配列の出力
参考
「独習C#」2.5.3 配列型
「独習C#」4.3.3 ループのネストとbreak/continue命令