【勉強日記】条件分岐を使おう【第5回】

プログラミング

はじめに

今回のブログでは、【第1回】プログラミングって何? で紹介したプログラムの流れの要素「順接・条件分岐・反復(ループ)」のうちの「条件分岐」について、くわしく解説していきます(今回はpythonでの書き方をメインに紹介しています)。

プログラミング未経験や学び始めの方に読んでいただくことを前提として、つまづきやすい部分(実際に筆者がつまずいた部分)や、使用するさいの注意点についても説明していきます。

もくじ

  • 条件分岐はどんなときに使う?
  • 条件分岐の書き方 -if・else・elif-
  • 条件(もし~~なら)に使えるもの
    • 比較演算子
    • 論理演算子
  • 条件分岐を書くさいの注意点(著者が詰まったところ)
    • 処理される順番
    • 「範囲」の重要性
  • まとめ

条件分岐はどんなときに使う?

【第1回】プログラミングって何?では「プログラムは主に『順接』『条件分岐』『反復(ループ)』の3つの要素から成り立っている」と解説しました。このうちの「条件分岐」は、実際のプログラムでどのように使うのでしょうか。

上の画像では、関数を自販機(vending_machine)に例えています。入れたお金(引数)の値段によって、「ジュースが買えるか買えないか」別の結果を表示する関数です。

これは関数のなかで条件分岐が行われている例です。このように、

関数のなかで条件分岐の処理を行う

または

関数の返り値によってメインのプログラムのなかで処理を変える(たとえばこの関数の結果「ジュースが買えたら…」「ジュースが買えなかったら…」をもとに処理を変える)

目的で条件分岐を使うことが多いです。

条件分岐の書き方 ~if・else・elif~

pythonにおいて、条件分岐に登場する構文はif・else・elifの3種類です。

ifとは英語と同じく「もし~~だったら」という意味で、else・elifは「そうでない場合は…」を表します。

if からコロン(:)までに書かれている部分を条件式といいます

上の画像の場合、coin>=150 の部分が条件式になります。

この条件式が正しいとき、ifの下の段落の処理だけが実行されます。反対に、この条件式が正しくない場合、else:の下の段落の処理だけが行われます。

つまり、上の画像ではお金(引数)が150以上だった場合「coin>=150」の条件式が正しいことになり、「ジュースが買えます」のみ表示されます。反対に、お金(引数)が150以上でない場合は条件式が正しくならないため「ジュースは買えません」のみ表示されます。

elifの書き方

if とelseだけでは2つの分岐しかつくることができません。複数の分岐をつくりたいときはelifを使います。

画像では、さまざまな種類の飲み物が自販機にある場合の処理をelifで追加しています。

自販機に150円のジュース、180円のエナジードリンク、200円のコーヒーが売っているとき、150円あればジュースを買うことはできます。しかしエナジードリンクやコーヒーを買うことはできません。上のの画像の関数では、お金(引数)が190だった場合、「ジュースが買えます」のみ表示されます。

このように「if・・・の条件は満たさないけど××という条件は満たす」場合の処理をelifで追加することができます。

elifはifより後に書きます。また、elseがある場合はそれより上に記述します。また、elifは複数記述することができます。複数記述することができるので、たとえば上の画像の例では「エナジードリンクが買えるかどうかの条件・買えた場合の表示」をelifの文で追加することができます。

条件式(もし~なら)に使えるもの

if文の「もし…なら」の条件式の部分に、=や>といった記号を使いました。これらを「比較演算子」といいますまた、条件式にはandやorなども使うことができます。これを「論理演算子」といいます。これらは組み合わせて使用することができます。下の例以外にも使える演算子があるので、ぜひ調べてみてください。

 比較演算子

・== 2つの値が等しいかどうか

・!= 2つの値が異なるかどうか

・>=,<=  以下、以上を比べる

 論理演算子

・and  2つの条件をどちらも満たす

・or  2つの条件のどちらかを満たす

条件分岐を書くときの注意点(著者が詰まったところ)

書く時の順番と処理されるときの順番

条件分岐は上から順番に確認され、最初に当てはまったところから実行されます。elif文では該当する条件がいくつもあった場合、先に当てはまった処理だけが実行されます。

「範囲」の重要性

Pythonにおいては、インデント(改行や命令文の前の空白)が大きな意味をもちます

if~やelif~の条件文の下に処理を書いていくとき、空白に気を付けないと、どの条件とどの条件で分岐を作ろうとしているか分かりにくくなってしまいます。そのため、if文を書くときは常にインデントに気を配っておくと、ミスを減らすことができます。

まとめ

「条件分岐」はプログラム上で、関数のなかで引数の値のよって処理を変更するさいに使用されたり、全体のプログラムのなかで、関数の返り値によって処理を変更する場合などによく使用されます。

条件分岐は、おもにif・else・elifの3種類を使って書くことができます。もし~~だったら、のif~の部分を条件式といい、=や>、andやorといった演算子を使って条件を定めることができます。条件式が正しい場合はif文以下の処理が、正しくない場合はelse~として別の処理のみを行うことができます。

条件分岐を書くときは、if、elifの順番やインデント(文の前の空白)に注意するとミスを減らすことができます。

どの範囲まで条件分岐をさせるのか?を事前に考えて、処理のもれが出ないように分岐させることは最初は難しいと思います。まずはメモなどで「この条件式ならどんな値までカバーできるだろう?」を書き出しながら考えてみると良いかもしれません。

ここまで読んでくださってありがとうございました!

コメント

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