基礎から学ぶC#入門 90日コース | C#基本文法 - Day 8:条件分岐 if

C# 90日で身につけるC#
スポンサーリンク
スポンサーリンク
  1. Day 8 のゴールと全体イメージ
  2. if の基本:条件が「true」のときだけ実行する
    1. 「もし〜なら〜する」をコードで書く
    2. 具体例:年齢が 20 以上なら「成人です」と表示する
  3. if + else:条件が false のときの処理を書く
    1. 「そうでなければ〜する」を追加する
    2. 具体例:成人か未成年かを判定する
  4. else if:複数の条件を順番にチェックする
    1. 「A なら〜、そうでなければ B なら〜、それでもなければ〜」
    2. 具体例:点数によって評価を変える
  5. ネスト(入れ子の if):条件の中でさらに条件をチェックする
    1. 「もし〜なら、その中でさらに〜なら〜する」
    2. 具体例:成人かつ学生かどうかを判定する
  6. 三項演算子:短く書ける if-else
    1. 「条件 ? 真のときの値 : 偽のときの値」
    2. 具体例:年齢によってメッセージを切り替える
  7. 練習:年齢によるチケット料金判定
    1. 日本語で仕様を整理する
    2. 練習コード:if / else if / else を使った料金判定
    3. 三項演算子を使った簡易版
  8. Day 8 のまとめ
  9. Day 8 練習のゴール
  10. 合否判定:点数によって「合格」「不合格」を決める
    1. ステップ1:仕様を日本語で整理する
    2. ステップ2:if / else で合否を判定する
  11. 偶数・奇数判定:剰余演算子 % を使う
    1. ステップ1:仕様を日本語で整理する
    2. ステップ2:% と if で偶数・奇数を判定する
  12. 年齢判定:年齢によってメッセージを変える
    1. ステップ1:仕様を日本語で整理する
    2. ステップ2:if / else if / else で範囲を判定する
  13. BMI 判定:ネストと else if を組み合わせる
    1. ステップ1:仕様を日本語で整理する
    2. ステップ2:身長・体重を入力して BMI を計算する
  14. 成績判定:三項演算子も交えてみる
    1. ステップ1:仕様を日本語で整理する
    2. ステップ2:else if で成績を判定する
    3. ステップ3:三項演算子で簡易判定をしてみる
  15. 練習のまとめテンプレート:判定メニュー付きプログラム
  16. Day 8 練習のまとめ

Day 8 のゴールと全体イメージ

Day 8 では、プログラムの「流れ」をコントロールするための基本構文である 条件分岐 if を学びます。 条件分岐は、

  • 条件によって処理を変える
  • 状況に応じてメッセージを変える
  • エラー時だけ特別な処理をする

といった「判断」をプログラムに持たせるための仕組みです。

学ぶことは次のとおりです。

  • if
  • else
  • else if
  • ネスト(入れ子の if)
  • 三項演算子

これらをステップバイステップでかみ砕きながら、初心者の方でも自然に使えるようになることを目指します。

if の基本:条件が「true」のときだけ実行する

「もし〜なら〜する」をコードで書く

if は、

「もし条件が true なら、この処理を実行する」

という意味を持つ構文です。

最もシンプルな形は次のとおりです。

if (条件)
{
    // 条件が true のときに実行される処理
}
C#

具体例:年齢が 20 以上なら「成人です」と表示する

using System;

class Program
{
    static void Main(string[] args)
    {
        int age = 25; // 年齢

        // age が 20 以上なら「成人です」と表示する
        if (age >= 20)
        {
            Console.WriteLine("成人です。");
        }

        Console.ReadLine();
    }
}
C#

重要ポイント:

  • if の条件は、bool(true / false)になる式です。
  • 条件が true のときだけ、{} の中の処理が実行されます。
  • 条件が false の場合は、何も実行されません。

if + else:条件が false のときの処理を書く

「そうでなければ〜する」を追加する

else は、

「if の条件が false のときに実行する処理」

を指定するためのキーワードです。

if (条件)
{
    // 条件が true のときの処理
}
else
{
    // 条件が false のときの処理
}
C#

具体例:成人か未成年かを判定する

using System;

class Program
{
    static void Main(string[] args)
    {
        int age = 16;

        if (age >= 20)
        {
            Console.WriteLine("成人です。");
        }
        else
        {
            Console.WriteLine("未成年です。");
        }

        Console.ReadLine();
    }
}
C#

重要ポイント:

  • ifelse はセットで使うことが多いです。
  • 「どちらか一方だけが実行される」構造になります。

else if:複数の条件を順番にチェックする

「A なら〜、そうでなければ B なら〜、それでもなければ〜」

else if は、

「最初の if が false のときに、別の条件をチェックする」

ための構文です。

if (条件1)
{
    // 条件1が true のときの処理
}
else if (条件2)
{
    // 条件1が false で、条件2が true のときの処理
}
else
{
    // どの条件も true でないときの処理
}
C#

具体例:点数によって評価を変える

using System;

class Program
{
    static void Main(string[] args)
    {
        int score = 75; // テストの点数

        if (score >= 90)
        {
            Console.WriteLine("評価:A");
        }
        else if (score >= 70)
        {
            Console.WriteLine("評価:B");
        }
        else if (score >= 50)
        {
            Console.WriteLine("評価:C");
        }
        else
        {
            Console.WriteLine("評価:D");
        }

        Console.ReadLine();
    }
}
C#

重要ポイント:

  • 上から順番に条件がチェックされます。
  • 最初に true になったブロックだけが実行され、残りは無視されます。
  • 条件の順番はとても重要です(例:score >= 50 を先に書くと、70 点でも C になってしまいます)。

ネスト(入れ子の if):条件の中でさらに条件をチェックする

「もし〜なら、その中でさらに〜なら〜する」

ネストとは、if の中にさらに if を書くことです。 これにより、条件を段階的に細かく分けることができます。

具体例:成人かつ学生かどうかを判定する

using System;

class Program
{
    static void Main(string[] args)
    {
        int age = 22;
        bool isStudent = true; // 学生かどうか

        if (age >= 20)
        {
            Console.WriteLine("成人です。");

            // 成人の中でも、学生かどうかを判定する
            if (isStudent)
            {
                Console.WriteLine("成人学生です。");
            }
            else
            {
                Console.WriteLine("社会人です。");
            }
        }
        else
        {
            Console.WriteLine("未成年です。");
        }

        Console.ReadLine();
    }
}
C#

重要ポイント:

  • ネストは「条件の中でさらに条件を分けたいとき」に使います。
  • ネストが深くなりすぎると読みづらくなるため、 複雑になってきたらロジックの整理やメソッド分割を考えるとよいです。

三項演算子:短く書ける if-else

「条件 ? 真のときの値 : 偽のときの値」

三項演算子は、

条件 ? 条件が true のときの値 : 条件が false のときの値

という形で書く、簡潔な条件分岐です。

csharp

型 変数名 = 条件 ? 値1 : 値2;

具体例:年齢によってメッセージを切り替える

using System;

class Program
{
    static void Main(string[] args)
    {
        int age = 18;

        // 三項演算子でメッセージを切り替える
        string message = (age >= 20) ? "成人です。" : "未成年です。";

        Console.WriteLine(message);

        Console.ReadLine();
    }
}
C#

重要ポイント:

  • 三項演算子は「値」を返します(if 文は「処理」を書く)。
  • 短く書けますが、複雑な条件や長い処理には向きません。
  • 「単純な条件で、代入する値だけ変えたい」ときに使うと読みやすくなります。

練習:年齢によるチケット料金判定

日本語で仕様を整理する

練習として、「年齢によってチケット料金を変える」プログラムを考えてみます。

仕様を日本語で書くと次のようになります。

  1. ユーザーに年齢を入力してもらう
  2. 年齢に応じて料金を決める
    • 0 歳未満 → エラー
    • 0〜12 歳 → 子ども料金 500 円
    • 13〜19 歳 → 学生料金 800 円
    • 20〜64 歳 → 一般料金 1000 円
    • 65 歳以上 → シニア料金 700 円
  3. 結果を表示する

この仕様を、if / else if / else を使ってコードにしていきます。

練習コード:if / else if / else を使った料金判定

using System;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("年齢を入力してください:");
        string ageText = Console.ReadLine();

        // 年齢を int に変換(簡略化のため Parse を使用)
        int age = int.Parse(ageText);

        int price;

        if (age < 0)
        {
            Console.WriteLine("年齢は 0 以上を入力してください。");
            Console.ReadLine();
            return; // プログラム終了
        }
        else if (age <= 12)
        {
            price = 500; // 子ども料金
        }
        else if (age <= 19)
        {
            price = 800; // 学生料金
        }
        else if (age <= 64)
        {
            price = 1000; // 一般料金
        }
        else
        {
            price = 700; // シニア料金
        }

        Console.WriteLine($"年齢:{age} 歳");
        Console.WriteLine($"チケット料金:{price} 円");

        Console.ReadLine();
    }
}
C#

重要ポイント:

  • 条件は「小さい方から順番に」ではなく、「範囲が重ならないように」設計することが大切です。
  • age <= 12age <= 19age <= 64 → それ以外、という流れで、 すべての年齢がどこかの条件に当てはまるようにしています。

三項演算子を使った簡易版

「成人か未成年かだけ判定したい」という簡易版なら、三項演算子で書くこともできます。

using System;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("年齢を入力してください:");
        string ageText = Console.ReadLine();

        int age = int.Parse(ageText);

        // 三項演算子でメッセージを切り替える
        string message = (age >= 20) ? "成人料金です。" : "未成年料金です。";

        Console.WriteLine(message);

        Console.ReadLine();
    }
}
C#

Day 8 のまとめ

Day 8 では、条件分岐 if を中心に、

  • if:条件が true のときだけ処理を実行する
  • else:条件が false のときの処理を書く
  • else if:複数の条件を順番にチェックする
  • ネスト:条件の中でさらに条件を分ける
  • 三項演算子:簡単な条件分岐を短く書く

という構文を、具体的な例とともに確認しました。

条件分岐は、

  • 入力値に応じて処理を変える
  • 状況に応じてメッセージを変える
  • エラー時だけ特別な処理をする

など、プログラムに「判断力」を持たせるための基本です。

ぜひ、

  • 自分で条件を変えながら、どのブロックが実行されるかを確認する
  • 点数や年齢、フラグ(bool)などを使って、さまざまな判定ロジックを書いてみる
  • 三項演算子を使って「値だけ切り替えたい」場面を探してみる

といった練習を通して、「状況に応じて処理を切り替える」感覚を育てていってください。


Day 8 練習のゴール

Day 8 の練習では、条件分岐 if を使って、次のような「判定プログラム」を順番に作っていきます。

  • 合否判定
  • 偶数・奇数判定
  • 年齢判定
  • BMI 判定
  • 成績判定

この中で自然に、

  • if
  • else
  • else if
  • ネスト(入れ子の if)
  • 三項演算子

を使い分ける感覚を身につけることを目指します。

合否判定:点数によって「合格」「不合格」を決める

ステップ1:仕様を日本語で整理する

まずは、合否判定のルールを日本語で書き出します。

  • テストの点数(0〜100)を入力してもらう
  • 60 点以上なら「合格」
  • 60 点未満なら「不合格」

これを if / else でコードにします。

ステップ2:if / else で合否を判定する

using System;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("テストの点数を入力してください(0〜100):");
        string scoreText = Console.ReadLine();

        // 文字列を int に変換(簡略化のため Parse を使用)
        int score = int.Parse(scoreText);

        // 合否判定
        if (score >= 60)
        {
            Console.WriteLine("合格です。");
        }
        else
        {
            Console.WriteLine("不合格です。");
        }

        Console.ReadLine();
    }
}
C#

重要ポイント:

  • 条件は「合格の条件」から書くと分かりやすいです。
  • ifelse は「どちらか一方だけが実行される」構造になります。

偶数・奇数判定:剰余演算子 % を使う

ステップ1:仕様を日本語で整理する

  • 整数を入力してもらう
  • 2 で割った余りが 0 なら偶数
  • そうでなければ奇数

ステップ2:% と if で偶数・奇数を判定する

using System;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("整数を入力してください:");
        string numberText = Console.ReadLine();

        int number = int.Parse(numberText);

        // 2 で割った余りを求める
        int remainder = number % 2;

        if (remainder == 0)
        {
            Console.WriteLine("偶数です。");
        }
        else
        {
            Console.WriteLine("奇数です。");
        }

        Console.ReadLine();
    }
}
C#

重要ポイント:

  • % は「剰余演算子」で、割り算の余りを求めます。
  • 偶数か奇数かの判定は、number % 2 == 0 が定番です。

年齢判定:年齢によってメッセージを変える

ステップ1:仕様を日本語で整理する

  • 年齢を入力してもらう
  • 0 歳未満 → エラー
  • 0〜12 歳 → 子ども
  • 13〜19 歳 → ティーン
  • 20〜64 歳 → 大人
  • 65 歳以上 → シニア

ステップ2:if / else if / else で範囲を判定する

using System;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("年齢を入力してください:");
        string ageText = Console.ReadLine();

        int age = int.Parse(ageText);

        if (age < 0)
        {
            Console.WriteLine("年齢は 0 以上を入力してください。");
        }
        else if (age <= 12)
        {
            Console.WriteLine("子どもです。");
        }
        else if (age <= 19)
        {
            Console.WriteLine("ティーンです。");
        }
        else if (age <= 64)
        {
            Console.WriteLine("大人です。");
        }
        else
        {
            Console.WriteLine("シニアです。");
        }

        Console.ReadLine();
    }
}
C#

重要ポイント:

  • 上から順番に条件がチェックされ、最初に true になったブロックだけが実行されます。
  • 範囲が重ならないように条件を設計することが大切です。

BMI 判定:ネストと else if を組み合わせる

ステップ1:仕様を日本語で整理する

BMI(体格指数)は、次の式で求めます。

BMI = 体重(kg) ÷ 身長(m) ÷ 身長(m)

ここでは簡略化して、次のような判定を行います。

  • BMI < 18.5 → 低体重
  • 18.5〜25.0 → 普通体重
  • 25.0 以上 → 肥満

ステップ2:身長・体重を入力して BMI を計算する

using System;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("身長をメートル単位で入力してください(例:1.70):");
        string heightText = Console.ReadLine();

        Console.WriteLine("体重をキログラム単位で入力してください(例:65):");
        string weightText = Console.ReadLine();

        double height = double.Parse(heightText); // 身長(m)
        double weight = double.Parse(weightText); // 体重(kg)

        // BMI を計算
        double bmi = weight / (height * height);

        Console.WriteLine($"BMI:{bmi}");

        // BMI 判定
        if (bmi < 18.5)
        {
            Console.WriteLine("低体重です。");
        }
        else if (bmi < 25.0)
        {
            Console.WriteLine("普通体重です。");
        }
        else
        {
            Console.WriteLine("肥満です。");
        }

        Console.ReadLine();
    }
}
C#

重要ポイント:

  • else if (bmi < 25.0) のように、「前の条件を満たしていない」ことが前提になります。
  • BMI のような連続値でも、条件分岐で区分を作ることができます。

成績判定:三項演算子も交えてみる

ステップ1:仕様を日本語で整理する

  • テストの点数(0〜100)を入力してもらう
  • 90 以上 → A
  • 80〜89 → B
  • 70〜79 → C
  • 60〜69 → D
  • 60 未満 → F

ステップ2:else if で成績を判定する

using System;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("テストの点数を入力してください(0〜100):");
        string scoreText = Console.ReadLine();

        int score = int.Parse(scoreText);
        string grade;

        if (score >= 90)
        {
            grade = "A";
        }
        else if (score >= 80)
        {
            grade = "B";
        }
        else if (score >= 70)
        {
            grade = "C";
        }
        else if (score >= 60)
        {
            grade = "D";
        }
        else
        {
            grade = "F";
        }

        Console.WriteLine($"点数:{score} 点");
        Console.WriteLine($"成績:{grade}");

        Console.ReadLine();
    }
}
C#

ポイント:

  • 「高い方から順番に」条件を書くと分かりやすくなります。

ステップ3:三項演算子で簡易判定をしてみる

「合格か不合格かだけ知りたい」という簡易版なら、三項演算子で書けます。

using System;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("テストの点数を入力してください(0〜100):");
        string scoreText = Console.ReadLine();

        int score = int.Parse(scoreText);

        // 三項演算子で合否メッセージを切り替える
        string result = (score >= 60) ? "合格" : "不合格";

        Console.WriteLine($"点数:{score} 点");
        Console.WriteLine($"結果:{result}");

        Console.ReadLine();
    }
}
C#

重要ポイント:

  • 三項演算子は「値を切り替えたいとき」に向いています。
  • 複雑な条件や長い処理には使わず、シンプルな場面で使うと読みやすくなります。

練習のまとめテンプレート:判定メニュー付きプログラム

最後に、Day 8 の練習をまとめて、「判定メニュー付きプログラム」のテンプレート例を示します。

using System;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("=== 判定メニュー ===");
        Console.WriteLine("1: 合否判定");
        Console.WriteLine("2: 偶数・奇数判定");
        Console.WriteLine("3: 年齢判定");
        Console.WriteLine("4: BMI 判定");
        Console.WriteLine("5: 成績判定");
        Console.WriteLine("番号を入力してください:");

        string menuText = Console.ReadLine();
        int menu = int.Parse(menuText);

        if (menu == 1)
        {
            // 合否判定
            Console.WriteLine("テストの点数を入力してください:");
            int score = int.Parse(Console.ReadLine());

            string result = (score >= 60) ? "合格" : "不合格";
            Console.WriteLine($"結果:{result}");
        }
        else if (menu == 2)
        {
            // 偶数・奇数判定
            Console.WriteLine("整数を入力してください:");
            int number = int.Parse(Console.ReadLine());

            Console.WriteLine((number % 2 == 0) ? "偶数です。" : "奇数です。");
        }
        else if (menu == 3)
        {
            // 年齢判定
            Console.WriteLine("年齢を入力してください:");
            int age = int.Parse(Console.ReadLine());

            if (age < 0)
            {
                Console.WriteLine("年齢は 0 以上を入力してください。");
            }
            else if (age <= 12)
            {
                Console.WriteLine("子どもです。");
            }
            else if (age <= 19)
            {
                Console.WriteLine("ティーンです。");
            }
            else if (age <= 64)
            {
                Console.WriteLine("大人です。");
            }
            else
            {
                Console.WriteLine("シニアです。");
            }
        }
        else if (menu == 4)
        {
            // BMI 判定
            Console.WriteLine("身長(m)を入力してください:");
            double height = double.Parse(Console.ReadLine());

            Console.WriteLine("体重(kg)を入力してください:");
            double weight = double.Parse(Console.ReadLine());

            double bmi = weight / (height * height);
            Console.WriteLine($"BMI:{bmi}");

            if (bmi < 18.5)
            {
                Console.WriteLine("低体重です。");
            }
            else if (bmi < 25.0)
            {
                Console.WriteLine("普通体重です。");
            }
            else
            {
                Console.WriteLine("肥満です。");
            }
        }
        else if (menu == 5)
        {
            // 成績判定
            Console.WriteLine("テストの点数を入力してください:");
            int score = int.Parse(Console.ReadLine());
            string grade;

            if (score >= 90) grade = "A";
            else if (score >= 80) grade = "B";
            else if (score >= 70) grade = "C";
            else if (score >= 60) grade = "D";
            else grade = "F";

            Console.WriteLine($"成績:{grade}");
        }
        else
        {
            Console.WriteLine("不正なメニュー番号です。");
        }

        Console.ReadLine();
    }
}
C#

Day 8 練習のまとめ

この練習では、

  • 合否判定
  • 偶数・奇数判定
  • 年齢判定
  • BMI 判定
  • 成績判定

という具体的な題材を通して、

  • if / else / else if の基本的な使い方
  • ネストで条件を段階的に分ける方法
  • 三項演算子で「値だけ切り替える」書き方

を体験しました。

条件分岐は、プログラムに「判断」を持たせるための核となる構文です。 ぜひ、判定条件やメッセージを自分なりにアレンジしながら、

  • 「どの条件で、どのブロックが実行されるか」
  • 「条件の順番を変えると結果がどう変わるか」

を意識して書いてみてください。そうすることで、条件分岐の感覚がぐっと深まっていきます。

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