今まではデータの基本的な扱い方について確認してきましたが今回は変数の中身によって処理を変える条件分岐「if文」について確認していきます。
if文とは
if文(条件分岐)とは、「もし○○○ならば、×××する」という関係が成り立つ処理を、プログラムで表現すること処理の事です。仮定提示し、仮定に合致するかそうでないかを判断します。
いくつか文章で例を挙げてみましょう。
- もし、PS5の抽選に当たったら、PS5を買う。
- もし、髭男のチケットが当たったら、7月はライブを見に行く。
- もし、早く帰れたら、ゲームで遊ぶ。
私の欲望があふれ出てしまっていますね。。。
それはそれとしてわかりやすいように色付けしましたが、要は赤が実現したら青を実行するという形です。
プログラム的な考え方でもう一通り文章を見てみましょう。
- もし、変数の値が 3 だったら、“奇数” と出力する。
- もし、リストの中身が存在したら、リストに値を代入する。
- もし、文字列の値が”Morning”だったら、”GoodMorning”と出力する。
イメージがつきましたでしょうか。これが条件分岐です。
if文の書き方
次に、if文の書き方について確認していきます。
if文ではインデントを使用してブロックであることを示す必要があります。

最初に「if」と記載し、その後ろに判定させたい条件式を記載します。上記の例文でいう赤字の部分ですね。そして条件式終わりに “:”を付けます。これは後の処理がブロックになることを示すためです。
条件式の下には条件式に合致した場合の処理を記載し、記載するコードは必ずインデントで後ろに下げる必要があります。if文ブロックを抜けたい場合はインデントを外すことでブロックから抜けたことを示します。
if文ブロックの実行条件
if文ブロック内に記載した処理はif文に定義した条件式が真、つまり「True」であれば処理を実行します。条件式が偽、つまり「False」であれば処理はブロックごとスキップされます。

「True」と「False」はboolean型と呼ばれる変数で、boolean型変数はその2つで構成されるものになります。真偽を判定するための変数なのでこのように基本的にif文で用いられます。
if文で使用する比較演算子
さて、実際の使い方を確認する前にif文の条件式で使用される比較演算子を一覧で確認しておきます。
演算子 | 式 | 内容 |
< | a < b | a が b より小さければTrue |
<= | a <= b | a が b 以下であればTrue |
> | a > b | a が b より大きければTrue |
>= | a >= b | a が b 以上であればTrue |
== | a == b | a と b が同等の値であればTrue |
!= | a != b | a と b が同等の値でなければTrue |
is | a is b | a と b が同じオブジェクトであればTrue |
is not | a is not b | a と b が同じオブジェクトでなければTrue |
in | a in b | a が bに含まれる値であればTrue |
not in | a not in b | a が bに含まれる値でなければTrue |
ここで注意しておきたいのが 「==」と「is」の違いです。オブジェクトという言葉は現段階ではまだ使いたくなかったのですがそれ以外に形容しがたかったのでこのように書いております。それでも今は、オブジェクトとは何ぞやとは考えずに単純に言葉通り物体ととらえてください。
要は「==」は値を見比べるのに対して、「is」は物体の性質が一緒かどうかを見ます。
例えばですが、同じ重さのリンゴとみかんがあったとして、これらは重さの値で見れば”=”で結ぶことができますが、リンゴとみかんは同じ果物ではないので”is”で関連づけることはできません。

このような違いがあるということを頭の片隅でよいので入れておいてください。
if分の使用例
それでは最後に実際にプログラムに起こしてみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#文字列のif文 word1 = "Hello!" word2 = word1 word3 = "World!" if word1 == word2: print("word1 と word2 は同じ単語だよ") #こちらが出力される if word1 == word3: print("word1 と word3 は同じ単語だよ") #数値のif文 num1 = 5 num2 = num1 ** 2 num3 = 20 num1 += num3 if num1 > num2: print("num1 は num2 より大きい") if num1 > num3: print("num1 は num3 より大きい") #こちらが出力される。 |
上半分では文字列リテラルを比較して同値であれば文章を出力する、下半分では数値を比較して大きければ文章を出力する内容になっております。実行すると分ると思いますが、文字列では1個目の文章が、数値では2個目の文章が出力されます。Colabで上記を試してみていろんな条件式を作ってみてください。
以上でif文については完了です。
条件分岐はプログラミングにおいて非常に重要な要素になりますので、しっかりと押さえておきましょう。
今回はここまでです。お疲れ様でした。
コメント