if文やif〜else文など、プログラミングの中で使う文に頭を悩ませている方が多いのではないでしょうか?
この記事では、if文の記述方法・記述例を分かりやすく解説していきます!
if文とは
if文は、プログラムの中で分岐処理をするときに使います。文章で表すと以下のような処理です。
もし△△なら□□する
コードに落とし込むと以下のようになります。
if (△△) {
□□
}
△△の条件に当てはまったとき、□□の処理を行う、という流れになります。△△の部分を条件式、□□の部分をブロックと呼びます。ブロック内には処理を何行でも記述できます。
例として、年齢を条件にお酒が買えるかどうかを判定するコードを記述していきます。
age = 25 // 年齢
if (age >= 20) {
print('酒類購入可能')
}
上記のコードは、もし年齢の変数(age)が20歳以上なら、酒類購入可と表示する処理を行います。
ifの後に続く age >= 20 が条件を表しています。 上記のコードは、ageが20以上のとき、ブロックの処理を行うという流れになります。
age >= 20 が正しい場合、この条件式はTrueという値に変換され、ifの後ろに続くブロックの処理が行われます。逆に正しくない場合、Falseという値になりブロックの処理は行われません。これら2つの値は真偽値(boolean)と呼ばれるデータ型で、分岐処理には欠かせません。
変数についてはこちらの記事をご覧ください!
他の条件(else if)
先程の条件の次に、年齢が0以上20歳未満のときの処理を追加したいとしましょう。この場合はelse if文を使います。
age = 18 // 年齢
if (age >= 20) {
print('酒類購入可能')
} else if (age >= 0) {
print('酒類購入不可')
}
if文と同様に、else ifの後に続く age >= 0 が条件を表しています。 上記のコードの流れは以下のようになります。
ageを18で定義 → age >= 20 か判定 → Falseなので age >= 0 か判定
まず20歳以上か判定して、違った場合次の条件を判定して…という流れです。else ifは下記のように何個でも記述できます。
if (〇〇) {
〜〜
} else if (△△) {
〜〜
} else if (□□) {
〜〜
}
すべて当てはまらないケース(else)
if文およびelse if文のすべての条件に当てはまらなかったケースには、else文を使います。
age = -1 // 年齢
if (age >= 20) {
print('酒類購入可能')
} else if (age >= 0) {
print('酒類購入不可')
} else {
print('年齢が不正です')
}
上記の例ではageに-1という不正な値が代入されています。この場合はどの条件にも当てはまらないので、最後のelse文に続くブロックの処理が実行されます。
各プログラム言語での記述例
if文はプログラム言語によって書き方が異なることがあります。主要なプログラム言語での記述例を記載します。
Java, PHP, Javascript, C言語, C++
if (条件) {
} else if (条件) {
} else {
}
例の記述方法と同じです。多くの言語で採用されており、メジャーな記述方法と言えます。
Python
if (条件) :
処理
処理
elif (条件) :
処理
else :
処理
Pythonではブロックに{}(かっこ)を使いません。条件式の後に:(コロン)を続けて、次の行からインデント(空白スペース)を挟んで処理を記述します。このインデントが無いとエラーになるので注意しましょう。
また、else if文はelif文という名前になっています。
比較演算子
先程の例では20歳以上、0歳以上の場合を扱いましたが、他の比較条件も多数用意されています。(20歳と等しい、等しくない、小さい…など)
ある数以上の値かどうか調べるには、>=を使いました。xがy以上か調べる比較演算子は、
x >= y
となります。同様に他の条件も見てみましょう。
==(等しい)
左辺と右辺が等しいとき、Trueになります。
x == y
age = 25
print(age == 25) // True
!= (等しくない)
左辺と右辺が等しくない(異なる)とき、Trueになります。
x != y
age = 25
print(age != 10) // True
print(age != 35) // True
print(age != 25) // False
> (左辺が右辺より大きい)
左辺が右辺より大きいとき、Trueになります。
x > y
age = 25
print(age > 24) // True
print(age > 25) // False
>=(左辺が右辺以上)
左辺が右辺以上のとき、Trueになります。
x >= y
age = 25
print(age >= 25) // True
print(age >= 26) // False
<(左辺が右辺より小さい)
左辺が右辺より小さいとき、Trueになります。
x < y
age = 25
print(age < 26) // True
print(age < 25) // False
<=(左辺が右辺以下)
左辺が右辺以下のとき、Trueになります。
x <= y
age = 25
print(age <= 25) // True
print(age <= 24) // False
よく使われる比較演算子をご紹介しました。プログラム言語によっては比較演算子の記述方法が異なる場合があるので、注意しましょう。
論理演算子(複数条件など)
複数の条件をトリガーに分岐処理したい場合があります。例えば複数条件の両方を満たすとき、片方でも満たすときなどです。その際は論理演算子を使って、条件同士を結合します。
論理積(条件A && 条件B)
複数条件の両方を満たすときにTrueを返すには、論理積を使います。
例:気温が18度以上 かつ 25度以下であれば快適な気温とする
temperature = 20
if(temperature >= 18 && temperature <= 25) {
print('快適!')
} else {
print('不快!')
}
論理和(条件A || 条件B)
複数条件のうち、片方でも満たしているときにTrueを返すには、論理積を使います。
例:晴れか曇りであれば外出する
weather = 'sunny'
if(weather == 'sunny' || weather == 'cloudy') {
print('出掛ける!')
} else {
print('家でゆっくりする!')
}
否定(!条件A)
条件に当てはまらないときにTrueを返すには、否定を使います。
例:雨以外なら外出する
weather = 'sunny'
if(!(weather == 'rainy')) {
print('出掛ける!')
} else {
print('家でゆっくりする!')
}
上記の条件は、weather != ‘rainy’ と同じ結果になります。
if文はプログラムにほぼ必須の機能
条件分岐はプログラムと切って離せない関係にあります。実際に手を動かしてみるともっと理解が深まるので、コツコツ練習して身につけていきましょう!
コメント