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 if や else は実行されません。
score が 70 なら、score >= 80 は falsescore >= 60 は true
なので「B」が表示され、else は実行されません。
score が 50 なら、score >= 80 も score >= 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 >= 20score == 100isLoggedInage >= 18 && age < 65
こういうものは全部、
最終的に true か false になります。
もし余裕があればやってみてほしいこと
自分ルールの「判定プログラム」を作る
例えば、
今日の勉強時間が 30 分以上なら「よく頑張った」
10 分以上 30 分未満なら「もう少しできたかも」
10 分未満なら「明日は頑張ろう」
みたいな、自分用の判定ロジックを作ってみてください。
studyMinutes という変数を用意して、
if 〜 else if 〜 else でメッセージを変えるだけで作れます。
3日目のまとめ
1日目:表示
2日目:計算
3日目:条件分岐
これで、C# の「基本三種の神器」がそろいました。
値を覚える(変数)
計算する(演算)
条件で分ける(if)
この3つが組み合わさると、
「状況によって結果が変わる」プログラムが書けるようになります。
次のステップでは、
「同じことを何回も繰り返す(ループ)」に進んでいきますが、
その前提として、今日の if 文の感覚はとても大事です。
「条件によって動きを変えられるようになった」
ここまで来たあなたは、もう立派に“プログラムを書いている人”です。
