Day7 前半のゴール
Day7 は 総復習① として、これまで学んだ C# の基礎文法を「実際のプログラム」にまとめていく日です。 前半では、次の 3 つのプログラムのうち、考え方と基本構造を中心に整理していきます。
数当てゲーム BMI判定ツール 成績管理プログラム
変数・演算子・条件分岐・繰り返し・配列といった要素が、 ひとつのプログラムの中でどうつながるのかをイメージできるようになることが目標です。
数当てゲームの考え方を整理する
数当てゲームで使う要素
数当てゲームは、次のような流れのプログラムです。
コンピュータが「正解の数字」をひとつ決める ユーザーが数字を入力する 正解より大きいか小さいかをヒントとして表示する 当たるまで繰り返す
ここには、すでに学んだ要素がすべて詰まれています。
変数(正解の数字・入力された数字) 条件分岐(大きい/小さい/正解) 繰り返し(当たるまで続ける)
「ゲーム」という形をとることで、 プログラムの流れを楽しく体験できる題材になっています。
数当てゲームの基本構造
数当てゲームの骨組みは次のようになります。
int answer = 42; // 正解の数字(本来はランダムにする)
int input;
while (true)
{
Console.Write("数字を入力してください:");
input = int.Parse(Console.ReadLine());
if (input > answer)
{
Console.WriteLine("もっと小さいです");
}
else if (input < answer)
{
Console.WriteLine("もっと大きいです");
}
else
{
Console.WriteLine("正解です!");
break;
}
}
C#ここで重要なのは、 「当たるまで繰り返す」という発想を while と break で表現している という点です。
while (true) で「ずっと続ける」 正解したら break で「ループを抜ける」
この組み合わせは、実務でも非常によく使われるパターンです。
BMI判定ツールの考え方を整理する
BMIとは何かをコードに落とし込む
BMI(Body Mass Index)は、 体重と身長から「体格の目安」を計算する指標です。
計算式は次のとおりです。
BMI = 体重(kg) ÷ 身長(m) ÷ 身長(m)
例えば、 体重 60kg、身長 1.7m の場合は
60 ÷ 1.7 ÷ 1.7
という計算になります。
この「現実の計算式」をそのまま C# に書くのが BMI判定ツールです。
BMI判定ツールの基本構造
まず、身長と体重を入力してもらいます。
Console.Write("身長(m)を入力してください:");
double height = double.Parse(Console.ReadLine());
Console.Write("体重(kg)を入力してください:");
double weight = double.Parse(Console.ReadLine());
C#次に、BMI を計算します。
double bmi = weight / (height * height);
Console.WriteLine("BMI: " + bmi);
C#ここで深掘りしたいポイントは、 「身長はメートルで扱う」ことと「double 型で計算する」こと です。
整数型(int)で計算してしまうと、小数点以下が切り捨てられてしまい、 正しい BMI が求められません。
BMIの判定ロジック
一般的な目安として、次のような判定を行うことが多いです。
18.5 未満 → 低体重 18.5 以上 25 未満 → 普通体重 25 以上 → 肥満
これを C# の条件分岐にすると次のようになります。
if (bmi < 18.5)
{
Console.WriteLine("低体重です");
}
else if (bmi < 25.0)
{
Console.WriteLine("普通体重です");
}
else
{
Console.WriteLine("肥満です");
}
C#ここで重要なのは、 「条件は上から順番に評価される」ことを意識して範囲を設計する という点です。
bmi < 18.5 bmi < 25.0 それ以外
という順番にすることで、 BMI の値がどこに当てはまるかを自然に判定できます。
成績管理プログラムの考え方を整理する
成績管理で使う要素
成績管理プログラムは、 複数の点数を配列で管理し、 合計・平均・最大値・最小値などを計算するプログラムです。
ここでは次の要素が登場します。
配列(複数の点数をまとめて保存) ループ(全員分の点数を処理) 条件分岐(最大値・最小値の更新)
Day6 までに学んだ内容を総動員する形になります。
成績管理の基本構造
まず、点数の配列を用意します。
int[] scores = { 80, 75, 90, 60, 88 };
C#合計と平均を求める基本形は次のとおりです。
int total = 0;
for (int i = 0; i < scores.Length; i++)
{
total += scores[i];
}
double average = (double)total / scores.Length;
Console.WriteLine("合計: " + total);
Console.WriteLine("平均: " + average);
C#最大値・最小値も同じ配列から求められます。
int max = scores[0];
int min = scores[0];
for (int i = 1; i < scores.Length; i++)
{
if (scores[i] > max)
max = scores[i];
if (scores[i] < min)
min = scores[i];
}
Console.WriteLine("最大値: " + max);
Console.WriteLine("最小値: " + min);
C#ここで深掘りしたいポイントは、 「最初の要素を基準にする」ことで、どんな値でも安全に比較できる ということです。
0 を基準にしてしまうと、 すべての点数が 0 未満だった場合に正しく動かなくなります。
Day7 前半のまとめ
Day7 前半では、次の 3 つのプログラムの「考え方」と「基本構造」を整理しました。
数当てゲーム → 条件分岐 × 繰り返し × ユーザー入力 BMI判定ツール → 現実の計算式 × double 型 × 条件分岐 成績管理プログラム → 配列 × ループ × 合計・平均・最大・最小
どれも、これまで学んだ C# の基礎を「ひとつの流れ」としてつなげる題材です。 後半では、これらのプログラムをもう少し具体的なコードとして組み立てながら、 実際に動く「小さなアプリケーション」として完成させていきます。

