C# | ゼロからはじめるプログラミング、30日で基礎を学ぶC#:基礎文法を学ぶ - Day7:総復習①

C# 30日で身につけるC#
スポンサーリンク
スポンサーリンク

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# の基礎を「ひとつの流れ」としてつなげる題材です。 後半では、これらのプログラムをもう少し具体的なコードとして組み立てながら、 実際に動く「小さなアプリケーション」として完成させていきます。

タイトルとURLをコピーしました