C# | 1 日 60 分 × 7 日アプリ学習:超初級編

Web APP C#
スポンサーリンク

3日目のゴール

3日目のテーマは
「C# で“条件によって動きを変える”感覚をつかむこと」 です。

ここまでで、
値を覚える(変数)
計算する
表示する(Console.WriteLine)
はできるようになりました。

今日はそこに、
「もし〜なら、こうする」「そうでなければ、こうする」
という“分かれ道”を追加します。


if 文は「プログラムの分かれ道」

まずは一番シンプルな if

C# の if 文は、こんな形をしています。

if (条件)
{
    // 条件が「真(true)」のときだけ実行される
}
C#

例えば、「年齢が 20 以上なら“大人です”と表示する」プログラムはこうです。

using System;

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

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

        Console.WriteLine("プログラム終了");
    }
}
C#

ここで大事なのは、
if (age >= 20) の部分です。

age >= 20 は「age が 20 以上か?」という“質問”です。
C# はこれを評価して、
「はい(true)」か「いいえ(false)」のどちらかにします。

true なら、波かっこ { } の中が実行される。
false なら、スキップされる。

これが if 文の基本です。


比較演算子をしっかり押さえる

「〜かどうか」を表す記号たち

条件の中では、「〜かどうか」を表す記号を使います。
代表的なものだけ、ここで整理しておきます。

== … 等しいかどうか
!= … 等しくないかどうか
> … より大きいか
< … より小さいか
>= … 以上か
<= … 以下か

例えば、

age == 18 は「age は 18 と等しいか?」
score >= 60 は「score は 60 以上か?」
money != 0 は「money は 0 ではないか?」

という意味になります。

ここで一つだけ注意。
「等しい」は = ではなく == です。

= は「代入」(値を入れる)
== は「比較」(等しいかどうか調べる)

この違いは、C# だけでなく、ほとんどの言語で共通です。


if 〜 else で「どちらか一方」を選ぶ

条件が「はい」のときと「いいえ」のとき

「合格か不合格か」のように、
どちらか一方を必ず選びたいときは else を使います。

using System;

class Program
{
    static void Main(string[] args)
    {
        int score = 75;

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

        Console.WriteLine("判定終了");
    }
}
C#

ここでの流れはこうです。

score >= 60 を評価する
true なら if の中が実行され、else の中はスキップ
false なら if の中はスキップされ、else の中が実行される

「どちらか一方だけが必ず実行される」
これが if 〜 else の関係です。


else if で「3つ以上のパターン」を分ける

成績ランクを判定してみる

例えば、点数によってランクをつけたいとします。

80 点以上:A
60 点以上 80 点未満:B
60 点未満:C

これを C# で書くとこうなります。

using System;

class Program
{
    static void Main(string[] args)
    {
        int score = 72;

        if (score >= 80)
        {
            Console.WriteLine("評価:A");
        }
        else if (score >= 60)
        {
            Console.WriteLine("評価:B");
        }
        else
        {
            Console.WriteLine("評価:C");
        }
    }
}
C#

ここでのポイントは、「上から順番にチェックされる」ということです。

score が 85 なら、
score >= 80 が true なので「A」が表示され、
その下の else ifelse は実行されません。

score が 70 なら、
score >= 80 は false
score >= 60 は true
なので「B」が表示され、else は実行されません。

score が 50 なら、
score >= 80score >= 60 も false
なので最後の else が実行され、「C」が表示されます。


bool 型で「true / false」を直接扱う

条件そのものを変数にしてみる

C# には、
「true か false だけを入れるための型」
bool があります。

例えば、「ログインしているかどうか」を表したいとき。

bool isLoggedIn = false;

if (isLoggedIn)
{
    Console.WriteLine("ログイン中です");
}
else
{
    Console.WriteLine("ログインしていません");
}
C#

ここでのポイントは、
if (isLoggedIn) のように、
「すでに true / false が入っている変数」をそのまま条件に使えることです。

isLoggedIn == true と書いてもいいのですが、
C# では if (isLoggedIn) のように書くのが自然です。


論理演算子で条件を組み合わせる

「かつ」と「または」

少しだけレベルを上げて、条件を組み合わせてみます。

&& … かつ(両方とも true のときだけ true)
|| … または(どちらかが true なら true)

例えば、「年齢が 18 歳以上 65 歳未満なら“働く年齢”」としたいとき。

int age = 30;

if (age >= 18 && age < 65)
{
    Console.WriteLine("働く年齢です");
}
else
{
    Console.WriteLine("働く年齢ではありません");
}
C#

age >= 18 && age < 65 は、
「18 以上 かつ 65 未満」のときだけ true になります。

また、「会員 もしくは 管理者ならログインを許可する」ならこうです。

bool isMember = true;
bool isAdmin = false;

if (isMember || isAdmin)
{
    Console.WriteLine("ログインを許可します");
}
else
{
    Console.WriteLine("ログインできません");
}
C#

isMember || isAdmin は、
どちらか一方でも true なら true になります。


3日目のミニアプリ:簡易「料金判定」プログラム

年齢によって料金を変える

例として、こんなルールを考えます。

中学生以下:子ども料金 500 円
65 歳以上:シニア料金 700 円
それ以外:通常料金 1000 円

これを C# で書いてみます。

using System;

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

        if (age <= 15)
        {
            price = 500;
            Console.WriteLine("子ども料金です");
        }
        else if (age >= 65)
        {
            price = 700;
            Console.WriteLine("シニア料金です");
        }
        else
        {
            price = 1000;
            Console.WriteLine("通常料金です");
        }

        Console.WriteLine("料金は " + price + " 円です");
    }
}
C#

ここで意識してほしいのは、
「条件ごとに price に違う値を入れている」ことです。

if の中で price に 500 を入れる
else if の中で price に 700 を入れる
else の中で price に 1000 を入れる

最後に、
「どのルートを通っても、必ず price に何かが入っている」
という状態になっています。

これが「条件によって値を変える」基本パターンです。


3日目で絶対に押さえておきたいポイント

if 文の“形”を体で覚える

C# の if 文は、だいたいこの3パターンです。

条件が true のときだけ何かする:

if (条件)
{
    // true のときだけ実行
}
C#

true のときと false のときで分ける:

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

3つ以上に分ける:

if (条件1)
{
    // 条件1 が true
}
else if (条件2)
{
    // 条件1 は false で、条件2 が true
}
else
{
    // どれも当てはまらない
}
C#

そして、条件の中では必ず
「true か false に決着がつく式」を書きます。

age >= 20
score == 100
isLoggedIn
age >= 18 && age < 65

こういうものは全部、
最終的に true か false になります。


もし余裕があればやってみてほしいこと

自分ルールの「判定プログラム」を作る

例えば、

今日の勉強時間が 30 分以上なら「よく頑張った」
10 分以上 30 分未満なら「もう少しできたかも」
10 分未満なら「明日は頑張ろう」

みたいな、自分用の判定ロジックを作ってみてください。

studyMinutes という変数を用意して、
if 〜 else if 〜 else でメッセージを変えるだけで作れます。


3日目のまとめ

1日目:表示
2日目:計算
3日目:条件分岐

これで、C# の「基本三種の神器」がそろいました。

値を覚える(変数)
計算する(演算)
条件で分ける(if)

この3つが組み合わさると、
「状況によって結果が変わる」プログラムが書けるようになります。

次のステップでは、
「同じことを何回も繰り返す(ループ)」に進んでいきますが、
その前提として、今日の if 文の感覚はとても大事です。

「条件によって動きを変えられるようになった」
ここまで来たあなたは、もう立派に“プログラムを書いている人”です。

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