コツを知ると簡単!プログラミングでif文を複数書くなら直線を使おう

突然ですが、あなたがもし、山登りで遭難してしまったらどうしますか?

 

風が強かったら、雨が降ってきたら、食べ物がなかったら、その時の状況によって行動を判断しなければなりません。

 

もし、・・・だったら、それがif文を使った条件分岐になります。

プログラムの処理順序(次はどの処理を実行するのか?)を指示してあげる役割があります。

 

場合分けすればいいのはわかるけど・・・

 

場合分けをプログラミング言語で表現するのが苦手

 

というように思っていませんか?

 

言語化して処理を分けることができるかがポイントだね

 

処理を分けるときに図をかいて考えると楽だよ

 

理解できているプログラマにしてみたら、特別に取り上げるテーマではないかもしれません。

 

それでは、プログラミング初学者は経験者からどんなことを学べばよいのでしょうか?

 

今回は、複数の条件が与えられた場合に、図式化して問題をとらえると解決しやすくなることを解説します。

 

その次に、if文は、3つの型があることをフローチャートで確認します。

そして、if文の条件式に使われる演算子についても、いっしょに見ておきましょう。

 

この記事を読めば、

直線を使い複数の処理を分け、それをプログラミング言語で表現することが容易になることを実感できます。

 

 

ちなみに遭難したら頂上を目指しましょう!
上に行くほど、木々がなくなり上空から発見してもらいやすくなるよ

 

 

複数の条件式を分けるために直線を活用しよう!

if文を学んでいると、次のような練習問題を見かけたことがあるでしょう。

 

テストの点数結果によって成績を判定する

ある学校で期末テストが行われました。テストの結果によって成績判定を行います。

 

①100点であれば評価A

②80点以上であれば評価をB

③60点以上であれば評価をC

④59点以下を評価D

 

初学者にありがちな間違えは、いきなりプログラムを書こうとすることです。

 

いったん問題の情報を整理するために図を描くことおすすめします。

 

ここでは、簡単な直線を使って情報を整理する方法をお伝えします。

 

 

図のように直線を描き、その直線自体を変数とします。今回は変数pointを設定しました。

 

直線上に①から④までの条件式を設定し、その条件によって処理を分けます。

 

文章を図にすると情報が整理できるね

 

 

映画館の入場料金を設定する

次に、年齢を条件に映画館の入場料金を設定する場合を考えてみます。

 

①60歳以上は1,000円

②18歳以上で60歳未満であれば2,000円

③年齢が18歳未満であれば1,500円

 

この場合もやはり直線を描いて、情報を整理します。

 

 

一本の直線を描くだけで、情報がスッキリ整理できるのでコードが書きやすくなるよ

 

 

条件式に用いられる演算子については、このあと見ていこう!

 

 

if文には3つの型がある

if文には、3つの型があります。

言葉のみで理解することは難しいので、フローチャートを示して説明していきます。

 

フロチャートを詳しく知りたい方は、こちらの記事も一緒に読むと理解が深まります。

 

1.条件が成立する場合だけ処理を実行

  • 条件を満たす場合(Trueの状態)のみ処理Aを行います。

 

  • 条件を満たさない場合(Falseの状態)は何も処理を行いません。

 

例1.ではテストで60点以上の場合だけ「合格」と表示させることができます。

 

2.条件が成立しない場合にも処理を実行

条件を満たす場合は処理Aを行い、条件を満たさない場合には処理Bを行います。

 

例2.では、テストで60点未満の場合にも「不合格」と表示させることができます。

 

3.複数(2つ以上)の条件を設定する場合

テストの点数結果によって成績を判定する問題に沿って、考えてください。

 

プログラムは上から実行され、条件を満たした時点で次の処理へ実行が移るよ

 

 

条件式に使われる演算子とは?

条件式に用いられる演算子には、関係演算子と論理演算子があります。

ここでは演算子についてみていきます。

 

if文は関係式が正しいかを見ている

if文は、プログラム上で次の処理を実行するか実行しないかを、どのように判断しているのでしょうか?

 

たとえば、5==7という関係式があるとします。

この関係は間違っていると判断され「偽」の判定がされます。

 

プログラム上ではFalseとして値が返ってきます。

3<6の関係は正しいので「真」と判定され、プログラム上ではTrueが返されます。

 

if文は「真」(True)であるか「偽」(False)であるかのブール型とよばれる値で演算処理されるよ

 

 

if文で使う関係演算子

関係演算子は、比較演算子ともよばれ2つの値を比較したものです。

 

if文は関係演算子を使い条件式で2つの値を比較した結果を「真」か「偽」で判定しています。

 

例えば、図のようにa<3という条件式はa=5であれば、不成立となりFalseの値が返ってきます。

 

複数の条件式を扱える論理演算子

論理演算子を使うと、1つのifで複数の条件式を扱うことができます。

複数の条件を判定するものではありませんが、条件式の内容を逆転させるnotも確認しておきます。

 

論理積(ろんりせき) and

and演算子は、「AかつB」のように、2つの条件A、Bが両方成り立つかどうかを調べる場合に使います。

 

複数の条件が両方とも「真」であれば、複数の条件全体が「真」となります。

それ以外は、すべて「偽」の判定となります。

 

論理和(ろんりわ) or

or演算子は、「AまたはB」のように、2つの条件A、Bのどちらかが成り立つかどうかを調べる場合に使います。

 

ポイントは、どちらか一方でも「真」であれば、複数の条件全体が「真」となります。

 

否定 not

論理を反転する場合に使用します。

条件式がTrueであればFalseにします。Falseであれば、Trueに反転させます。

 

たとえば、

「aは1と等しい」場合
a == 1 と表現
「aは1と等しくない」場合
not  a == 1 と表現
(a != 1 と表現することも可能) 
[! :エクスクラメーションという]

notは、andやorのような複数の条件式で使うものではないよ。でも、一緒に覚えておくと便利だよ

まとめ

複数の条件が与えられ、if文を使って処理を組み立てていく場合を見てきました。

if文を書く3つのポイントを以下にまとめておきます。

 

  • 複数の条件が与えられた場合、直線を使い情報を整理する

 

  • if文で使用される3つの型を使い分ける

 

  • if文の条件式で使われる演算子を使い分ける
おすすめの記事