LESSON 12 ・ 条件分岐
ifのネスト
条件分岐を重ねる
var gender = "male"
var age = 12
if gender == "male" {
if age < 18 {
print("結婚できません")
} else {
print("結婚できます")
}
} else {
if age < 16 {
print("結婚できません")
} else {
print("結婚できます")
}
}
2022年までの日本の法律では、男性は18歳以上・女性は16歳以上になると結婚することができました。この条件でgender(性別)とage(年齢)から結婚できるか判定するコードは上記のようになります。
このコードでは、ifで分岐した後でさらにifで分岐しています。これをifのネスト(nest)と言います。
PRACTICE
演習問題
コードを自分で書いて実行してから、答えと解説を確認しましょう。
問題1
天気weatherが"rainy"なら、さらに気温temperatureを調べます。気温が10より小さければ"傘と上着"、そうでなければ"傘"と表示してください。雨でなければ"傘は不要"と表示します。天気は"rainy"、気温は8とします。
答えと解説を見る
模範解答
var weather = "rainy"
var temperature = 8
if weather == "rainy" {
if temperature < 10 {
print("傘と上着")
} else {
print("傘")
}
} else {
print("傘は不要")
}
最初のifで天気を分岐し、そのブロックの中のifで気温を分岐しています。今回は傘と上着が表示されます。
問題2
会員かどうかを表すmemberが"yes"のときだけ購入金額totalを調べ、totalが5000より大きければ"割引あり"、そうでなければ"通常価格"と表示してください。会員でなければ"会員登録が必要"と表示します。memberは"yes"、totalは6200とします。
答えと解説を見る
模範解答
var member = "yes"
var total = 6200
if member == "yes" {
if total > 5000 {
print("割引あり")
} else {
print("通常価格")
}
} else {
print("会員登録が必要")
}
会員であることを確認した後で、購入金額についてもう一度分岐しています。今回は割引ありが表示されます。
問題3
信号lightが"green"のとき、さらに車carが"none"かを調べます。車がいなければ"渡る"、いれば"待つ"と表示してください。信号が青でなければ"止まる"と表示します。lightは"green"、carは"coming"とします。
答えと解説を見る
模範解答
var light = "green"
var car = "coming"
if light == "green" {
if car == "none" {
print("渡る")
} else {
print("待つ")
}
} else {
print("止まる")
}
外側の条件を満たした場合だけ、内側の条件が調べられます。今回は信号は青ですが車がいるため、待つが表示されます。