Bool と条件式
読了目安 約2分
条件式の結果は true / false という Bool 型の値。論理演算子とド・モルガンの法則を学ぶ。
この章の目次
x > 0 のような条件式は、if 文の専用部品ではありません。
計算すると値になる、普通の式です。
条件式の結果は値
3 < 5 を print に渡すと、結果がそのまま出力されます。
print(3 < 5)
print(3 == 5)条件式は、成り立つなら true、成り立たないなら false という値を作ります。
この 2 つの値だけを持つ型を Bool と呼びます。
42 が Int の値であるように、true は「Bool」の値です。
Bool を変数に入れる
Bool は値なので、定数や変数に入れられます。
print の引数にもできます。
let age = Int(readLine()!)!
let isChild = age < 13
print(isChild)
if isChild {
print("子ども料金です")
}10if の条件の場所には、条件式の代わりに Bool の定数をそのまま書けます。
判定に名前が付くので、コードの意図が読みやすくなります。
試してみよう: 標準入力を 13 に変えて、2 つの出力がどう変わるか確かめてください。
論理演算子
条件を組み合わせる演算子を論理演算子と呼びます。 組み合わせた結果も Bool の値です。
| 演算子 | 意味 | 例 |
|---|---|---|
&& | かつ | 1 <= x && x <= 10 |
|| | または | x < 1 || 10 < x |
! | 〜でない | !(x == 7) |
let x = 7
print(1 <= x && x <= 10)
print(x < 1 || 10 < x)
print(!(x == 7))ド・モルガンの法則
「A かつ B」の否定は、「A でない、または B でない」と同じです。 この書き換えの規則をド・モルガンの法則と呼びます。
!(A && B)は!A || !Bと同じ!(A || B)は!A && !Bと同じ
let x = 20
print(!(1 <= x && x <= 10))
print(x < 1 || 10 < x)1 行目は「1 以上 10 以下、の否定」、2 行目はそれを法則で書き換えた式です。
x をどんな値にしても、2 つの出力は一致します。
! と括弧が重なって読みにくいとき、この法則で条件を平らに書き直せます。
学びどころ
| 概念 | 一言まとめ |
|---|---|
| Bool | true と false だけを持つ型 |
| 条件式 | 計算すると Bool の値になる式 |
| 論理演算子 | && (かつ)、|| (または)、! (〜でない) |
| ド・モルガンの法則 | !(A && B) は !A || !B に書き換えられる |
演習
1 行に整数 A B C が空白区切りで入力されます。
次の 3 つの判定結果を、上から順に true / false で 1 行ずつ出力してください。
- A は B より大きい
- B と C は等しい
- A は B 以上 C 以下
制約: 0 ≤ A, B, C ≤ 100
入力例:
3 2 2
出力例:
true
true
false模範解答
let parts = readLine()!.split(separator: " ").map { Int($0)! }
let a = parts[0]
let b = parts[1]
let c = parts[2]
print(a > b)
print(b == c)
print(b <= a && a <= c)