
突然ですが、あなたがもし、山登りで遭難してしまったらどうしますか?
風が強かったら、雨が降ってきたら、食べ物がなかったら、その時の状況によって行動を判断しなければなりません。
もし、・・・だったら、それが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文で使う関係演算子
関係演算子は、比較演算子ともよばれ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に反転させます。
たとえば、
まとめ
複数の条件が与えられ、if文を使って処理を組み立てていく場合を見てきました。
if文を書く3つのポイントを以下にまとめておきます。
- 複数の条件が与えられた場合、直線を使い情報を整理する
- if文で使用される3つの型を使い分ける
- if文の条件式で使われる演算子を使い分ける