LESSON 11 ・ 条件分岐
elseとelse if
条件を満たさない場合
var age = 12
if age < 20 {
print("お酒を飲めません")
} else {
print("お酒を飲めます")
}
「もし〜ならA、そうでなければB」のように、「そうでなければ」実行される処理を書くにはelseを使います。elseの後のブロックは、条件を満たさなかった場合にだけ実行されます。
三つ以上に分岐する
var age = 12
if age < 0 {
print("エラーです")
} else if age < 20 {
print("お酒を飲めません")
} else {
print("お酒を飲めます")
}
「もし〜ならA、もし…ならB、そうでなければC」のように三つ以上に分岐したい場合にはelse ifを使います。else ifの後にはifと同じように条件を書くことができ、その条件を満たした場合にだけ、else ifのブロックが実行されます。
条件は上から順にチェックされ、最初にtrueになった部分が実行されます。一度条件を満たして分岐されたコードに突入すると、他の分岐が実行されることはありません。
var age = 12
if age < 0 {
print("エラーです")
} else if age < 20 {
print("お酒を飲めません")
} else if age < 70 {
print("お酒を飲めます")
} else {
print("お酒を飲まない方がいいですね")
}
else ifは複数記述することができます。
ifは最初に一つ、elseは最後に一つだけです(ifは必ず必要、elseはなくても良い)。
PRACTICE
演習問題
コードを自分で書いて実行してから、答えと解説を確認しましょう。
問題1
年齢を表す変数ageが20より小さければ"20歳未満です"、そうでなければ"20歳以上です"と表示してください。ageは22とします。
答えと解説を見る
模範解答
var age = 22
if age < 20 {
print("20歳未満です")
} else {
print("20歳以上です")
}
age < 20は偽なので、elseのブロックが実行されます。
問題2
点数scoreが80より大きければ"A"、60より大きければ"B"、それ以外なら"C"と表示してください。scoreは75とします。
答えと解説を見る
模範解答
var score = 75
if score > 80 {
print("A")
} else if score > 60 {
print("B")
} else {
print("C")
}
条件は上から調べられます。最初の条件は偽で、次の条件が真になるため、Bが表示されます。
問題3
年齢ageが6より小さければ入場料を0円、18より小さければ500円、それ以外なら1000円と表示してください。ageは14とします。
答えと解説を見る
模範解答
var age = 14
if age < 6 {
print(0)
} else if age < 18 {
print(500)
} else {
print(1000)
}
ageは6より小さくはありませんが、18より小さいため、二つ目の分岐で500が表示されます。