これまでのプログラムは、書かれたコードを上から下へ、一本道をまっすぐ進むだけでしたね。でも、私たちの日常を思い浮かべてみてください。「もし雨が降っていたら、傘を持っていく」「もしお腹が空いていたら、ご飯を食べる」というように、私たちは常に状況に応じて行動を変えています。

今回は、プログラムにそんな「もし○○だったら、△△する」という、状況判断の能力を与える魔法、「条件分岐」を学んでいきます。この章を終える頃には、あなたのプログラムは単なる命令の実行者から、賢い判断ができるパートナーへと進化しますよ!

プログラムの流れをコントロールするということ

プログラムは、一つ一つの命令文、これを「文(ぶん)」と呼びますが、その集まりでできています。通常、これらの文は記述された順に実行されます。

しかし、時には特定の条件の時だけ実行したい文や、条件によって実行する文を変えたい場合がありますよね。このように、プログラムの実行の流れを意図的に変える仕組みのことを「制御構造(せいぎょこうぞう)」と呼びます。

今回学ぶ「条件分岐」は、この制御構造の最も基本的で重要なものの一つです。さあ、プログラムの流れを自由に操るための第一歩を踏み出しましょう!

「もし~なら」を実現するif文

条件分岐の基本となるのがif文です。英語の "if" と同じで、「もし~ならば、...する」という意味を表します。

その構造は非常にシンプルです。

if 条件式:
条件が満たされた(真)場合に実行する処理

ifの後に判断の基準となる「条件式」を書き、その末尾には必ず:(コロン)をつけます。そして次の行から、条件が満たされたときに実行したい処理を、少し字下げ(インデント)して書きます。この字下げが「この処理はif文の一部ですよ」という目印になる、Pythonの非常に重要なルールです!

例えば、テストの点数が60点以上なら「合格」と表示するプログラムを見てみましょう。

score = 85

if score >= 60:
    print("合格です!おめでとうございます。")

このコードでは、まず変数scoreに85を代入しています。

次にif文でscore >= 60という条件式を評価します。85は60以上なので、この条件は満たされます(専門用語では「真(しん)」と言います)。

条件が真なので、字下げされたprint文が実行され、画面に「合格です!おめでとうございます。」と表示される、という仕組みです。

もしscore50だったら、条件は満たされない(「偽(ぎ)」と言います)ので、print文は実行されず、プログラムは何も表示せずに終了します。

TrueかFalseか?コンピュータの判断基準

if文が使っている「条件式」は、コンピュータにとって「Yes」か「No」か、つまり「真(True)」か「偽(False)」かのどちらか一方の答えしか出ない式のことを指します。

この判断のために使われるのが「比較演算子(ひかくえんざんし)」です。数学で習った等号や不等号と似ていますが、少し違う記号もあるのでここでしっかり覚えましょう!

意味演算子例 (age = 20)結果
等しい==age == 20True
等しくない!=age != 20False
より大きい>age > 20False
より小さい<age < 20False
以上>=age >= 20True
以下<=age <= 20True

ここで絶対に注意してほしいのが、===の違いです。

  • =は「代入」を意味します。x = 5は「xという変数に5を入れる」という命令です。
  • ==は「比較」を意味します。x == 5は「xの中身は5と等しいですか?」という質問です。

これを間違えると、プログラムは全く意図通りに動かなくなってしまうので、しっかり区別してくださいね!

判断のバリエーションを増やそう!

「もし~なら」だけでなく、「~でなかったら」「もし~ならA、そうでなくBならC、どちらでもなければD」のように、もっと複雑な判断をさせたい時もありますよね。そのための構文もちゃんと用意されています。

if-else構文:「もし~なら、さもなければ」

条件が満たされなかった場合に、必ず何か別の処理を実行させたい。そんな時に使うのがelseです。

age = 18

if age >= 20:
    print("お酒をどうぞ。")
else:
    print("20歳になってからお越しください。")

このプログラムでは、age18なのでage >= 20という条件は満たされません(偽)。すると、ifのブロックは無視され、else:に続くブロックが実行されます。結果として「20歳になってからお越しください。」と表示されます。

if-elif-else構文:3つ以上の選択肢

選択肢が3つ以上ある場合はどうでしょう?そんな時はelif(else if の略)の出番です。

elifを使うと、最初のifの条件が偽だった場合に、さらに別の条件で判断を続けることができます。

score = 75

if score >= 90:
    print("評価はSです。素晴らしい!")
elif score >= 80:
    print("評価はAです。優秀です。")
elif score >= 70:
    print("評価はBです。良い調子ですね。")
else:
    print("評価はCです。次回頑張りましょう!")

このコードは、上から順番に条件をチェックしていきます。

  1. score >= 90? → 75なので偽。次に進む。
  2. score >= 80? → 75なので偽。次に進む。
  3. score >= 70? → 75なので真!ここの処理を実行。結果として「評価はBです。良い調子ですね。」と表示されます。elifの条件が一度でも真になったら、それ以降のelifやelseはすべて無視される、という点もポイントです。

まとめ:プログラムに知性を与えよう!

お疲れ様でした!この章では、プログラムの流れを自在に操る「条件分岐」について学びました。

  • if文: 「もし~なら」という基本的な条件判断を行う。
  • 比較演算子: ==>など、条件式の判断基準となる記号。
  • インデント: 字下げによって、処理のまとまりを示すPythonの重要なルール。
  • if-else: 「もし~なら、そうでなければ」という2択の分岐。
  • if-elif-else: 3つ以上の選択肢を持つ、より複雑な分岐。

if文をマスターしたあなたは、もはやプログラムに「知性」を与える方法を手に入れたと言っても過言ではありません。

さて、状況に応じて処理を変えることはできるようになりました。ですが、「同じ処理を100回繰り返したい」といった場合はどうでしょう?print文を100行書くのは大変ですよね。

次の章では、面倒な繰り返し処理をコンピュータに自動で実行させる、もう一つの重要な制御構造「繰り返し」について学んでいきます。プログラミングの効率が、劇的にアップしますよ!ぜひ、楽しみにしていてくださいね。

4章. 繰り返しで面倒な作業を秒殺しよう

<まとめ:隣の人に正しく説明できたらチェックを付けましょう>

□プログラムに「もし〜なら〜する」という条件分岐(if文)で判断力を与える。

□if文では条件式がTrue(真)のときだけ処理が実行される。

比較演算子(==, !=, >, <, >=, <=)で条件を評価し、=(代入)と混同しないよう注意。

□if-elseで「そうでなければ」を表現し、if-elif-elseで複数の条件分岐を作れる。

□Pythonではインデント(字下げ)が構造を示す重要なルール。

□条件分岐を使えば、プログラムが状況に応じて動く“考えるプログラム”になる。

まとめができたら、アウトプットとして演習問題にチャレンジしましょう。