Day 21 のゴールと全体像
Day 21 では、C# の基礎の中でもとても重要な 配列(array) を学びます。 配列は「同じ種類のデータをまとめて扱うための箱の並び」のようなもので、 現実のプログラムでも頻繁に使われる基本的な仕組みです。
学ぶ内容は次の 4 つです。
- 配列とは
- インデックス
Length- 初期化
これらをステップバイステップで理解しながら、 「1つの変数ではなく、複数の値をまとめて扱う」感覚を身につけていきます。
配列とは
同じ型の値が並んだ「箱の列」
配列とは、
同じ型の値を、連続した「番号付きの箱」に入れてまとめて扱う仕組み
です。
例えば、5人分のテストの点数を別々の変数で管理すると、次のようになります。
int score1 = 80;
int score2 = 90;
int score3 = 75;
int score4 = 60;
int score5 = 95;
C#これでも動きますが、人数が増えるとすぐに管理しきれなくなります。 そこで、配列を使って「点数の一覧」としてまとめます。
int[] scores = new int[5]; // int 型の箱が 5 個並んだ配列を作成
C#この scores という配列には、
int型の値が 5 個入る- それぞれの箱に「番号(インデックス)」が振られている
という状態になります。
配列を使うことで、
- 「同じ種類のデータ」をひとまとまりとして扱える
- ループと組み合わせて、まとめて処理できる
ようになります。
インデックス
0 から始まる番号で要素を指定する
配列の中の 1 つ 1 つの値のことを 要素(element) と呼びます。 要素には「インデックス」と呼ばれる番号が付いていて、
- 最初の要素 → インデックス
0 - 2番目の要素 → インデックス
1 - 3番目の要素 → インデックス
2
というように、0 から始まるのがポイントです。
using System;
class Program
{
static void Main(string[] args)
{
int[] scores = new int[5]; // 要素数 5 の配列
// インデックスを使って値を代入します
scores[0] = 80; // 1人目の点数
scores[1] = 90; // 2人目の点数
scores[2] = 75; // 3人目の点数
scores[3] = 60; // 4人目の点数
scores[4] = 95; // 5人目の点数
// インデックスを使って値を取り出します
Console.WriteLine(scores[0]); // 80
Console.WriteLine(scores[4]); // 95
Console.ReadLine();
}
}
C#重要ポイント:
- 配列のインデックスは 0 から始まる
- 要素数が 5 の配列なら、インデックスは
0〜4まで scores[5]のように範囲外のインデックスを指定すると、 実行時に IndexOutOfRangeException というエラーが発生します
インデックスは、
「配列の中のどの箱を使うか」を指定するための番号
だとイメージすると分かりやすいです。
Length プロパティ
配列の「要素数」を教えてくれる
配列には、
その配列にいくつ要素があるか(要素数)
を教えてくれる Length プロパティがあります。
using System;
class Program
{
static void Main(string[] args)
{
int[] scores = new int[5];
Console.WriteLine(scores.Length); // 5 と表示されます
Console.ReadLine();
}
}
C#Length を使うことで、
- 配列の要素数をコードから確認できる
- ループで配列を回すときに「どこまで回せばいいか」を自動的に決められる
ようになります。
Length を使ったループの基本形
配列を for 文で回すときの基本形は、次のようになります。
using System;
class Program
{
static void Main(string[] args)
{
int[] scores = { 80, 90, 75, 60, 95 }; // 要素数 5 の配列
// i はインデックス(0 〜 scores.Length - 1)
for (int i = 0; i < scores.Length; i++)
{
Console.WriteLine($"scores[{i}] = {scores[i]}");
}
Console.ReadLine();
}
}
C#重要ポイント:
i < scores.Lengthとすることで、- インデックス
0から - インデックス
Length - 1まで を安全に回せます。
- インデックス
Lengthを使うことで、「配列のサイズが変わってもループが自動的に対応」できるようになります。
配列の初期化
new と代入で初期化する
配列の初期化には、いくつかの書き方があります。
1. サイズだけ決めて、あとから値を入れる
using System;
class Program
{
static void Main(string[] args)
{
// 要素数 5 の配列を作成(中身はすべて 0 で初期化されます)
int[] scores = new int[5];
// あとから値を代入していきます
scores[0] = 80;
scores[1] = 90;
scores[2] = 75;
scores[3] = 60;
scores[4] = 95;
Console.ReadLine();
}
}
C#この場合、
new int[5]の時点では、すべての要素が0で初期化されています。- そのあとで、1つずつ値を代入していきます。
2. 中身もまとめて書く初期化
using System;
class Program
{
static void Main(string[] args)
{
// new と { } を使って中身もまとめて初期化
int[] scores = new int[] { 80, 90, 75, 60, 95 };
Console.WriteLine(scores[0]); // 80
Console.WriteLine(scores[4]); // 95
Console.ReadLine();
}
}
C#さらに、型が明らかな場合は new int[] を省略できます。
using System;
class Program
{
static void Main(string[] args)
{
// 型が明らかな場合は new int[] を省略可能
int[] scores = { 80, 90, 75, 60, 95 };
Console.ReadLine();
}
}
C#重要ポイント:
{ ... }を使うと「この配列には、最初からこの値を入れておきたい」というときに便利です。new int[5]は「サイズだけ決めて、あとから値を入れる」場合に便利です。- どちらの書き方もよく使われるので、両方に慣れておくとよいです。
例題:5人分の点数の平均を求める
配列+インデックス+Length の総合練習
ここまでの内容を組み合わせて、 「5人分の点数の平均を求める」プログラムを書いてみます。
using System;
class Program
{
static void Main(string[] args)
{
// 5人分の点数を配列で管理します
int[] scores = new int[5];
// 点数を入力してもらう
for (int i = 0; i < scores.Length; i++)
{
Console.WriteLine($"{i + 1}人目の点数を入力してください:");
string? input = Console.ReadLine();
// 入力を int に変換します
// 本来は TryParse を使って安全に変換するのが望ましいですが、
// ここでは配列の説明に集中するため簡略化しています。
scores[i] = int.Parse(input); // i 番目の要素に代入
}
// 合計を求める
int sum = 0;
for (int i = 0; i < scores.Length; i++)
{
sum += scores[i]; // sum = sum + scores[i];
}
// 平均を求める(double にキャストして小数も扱えるようにします)
double average = (double)sum / scores.Length;
Console.WriteLine($"合計点:{sum}");
Console.WriteLine($"平均点:{average}");
Console.ReadLine();
}
}
C#ここでの重要ポイント:
- 配列
scoresに、インデックスiを使って点数を入れています。 scores.Lengthを使って、「何人分の点数があるか」をプログラムが自動的に把握しています。- 合計や平均を求める処理は、配列のサイズが変わってもそのまま使い回せます。
練習テンプレート:配列の基本形
配列を作って、全要素を表示するテンプレート
配列の感覚をつかむための、基本的なテンプレートを示します。
using System;
class Program
{
static void Main(string[] args)
{
// 配列の初期化(3つの文字列をまとめて管理します)
string[] names = { "Alice", "Bob", "Charlie" };
// Length を使って、全要素を表示します
for (int i = 0; i < names.Length; i++)
{
Console.WriteLine($"names[{i}] = {names[i]}");
}
Console.ReadLine();
}
}
C#このテンプレートをベースに、
- 要素数を増やしてみる
- 型を
intやdoubleに変えてみる - 入力した値を配列に入れてみる
といった練習をすると、配列の基本的な使い方が自然に身についていきます。
Day 21 のまとめ
Day 21 では、C# の基本的なデータ構造である 配列 について、
- 配列とは:同じ型の値が並んだ「番号付きの箱の列」
- インデックス:0 から始まる番号で要素を指定する
Length:配列の要素数を教えてくれるプロパティ- 初期化:
newと代入/{ ... }でまとめて初期化
という 4 つの軸で学びました。
配列は、
「複数の値をまとめて扱う」
ための最初の一歩となる重要な仕組みです。
ぜひ、
- 自分で配列を作って、インデックスを使って値を入れたり取り出したりしてみる
Lengthを使って安全にループを書く練習をする- 初期化の書き方(
new int[5]と{ ... })を使い分けてみる
といった練習を通して、 配列を自然に使いこなせるようになっていってください。

