1-3 if文やswitch文を使用した条件分岐
条件を分岐する処理には、if や switch が使えます。
if による条件分岐
if
文は条件に基づいてコードブロックを実行するために使用されます。if
条件がtrue
の場合、指定されたコードが実行されます。- 任意で else 句を使用して、条件が
false
の場合の処理を指定することもできます。
if の構文
if 条件1 {
// 条件1が true のときの処理
} else if 条件2 {
// 条件2が true のときの処理
} else {
// どの条件にも一致しない場合の処理
}
このように、if文は、条件によって、実行する処理を分岐することができます。
是非、実際に操作しながら学んでいきましょう。
以下でSwiftのブラウザ実行環境が使えます。 numberの値を変更したりして、print()で出力される文字を確認してみましょう。
https://online.swiftplayground.run/
let number = 7
if number == 5 {
print("number は 5 です")
} else if number == 10 {
print("number は 10 です")
} else {
print("number は それ以外です")
}
let number = 7
if number < 10 { // 10 未満
print("number は 10 未満 です")
} else {
print("number は それ以外です")
}
switch による条件分岐
switch
文は、複数の条件に基づいてコードを実行するために使用されます。case
句を使用して各条件を定義し、一致する条件があると該当するコードが実行されます。default
句を使用して、どの条件にも一致しない場合のデフォルトのコードを指定することができます。
switch の構文
switch 値や式 {
case 条件1:
// 条件1に一致する処理
case 条件2:
// 条件2に一致する処理
default:
// どの条件にも一致しない場合の処理
}
このように、switch文もif文と同様に、条件によって、実行する処理を分岐することができます。
let number = 7
switch number {
case 5:
print("number は 5 です")
case 10:
print("number は 10 です")
default:
print("number は それ以外です")
}
let number = 7
switch number {
case 0..<10: // 10 未満
print("number は 10 未満 です")
case 20...30: // 20 から 30 までの範囲です
print("number は 20 ~ 30 です")
default:
print("number は それ以外です")
}
![](https://programmerrikochan.com/wp-content/uploads/2023/07/cropped-cropped-IMG_5515.jpg)
ふむふむ。swiftには、「範囲演算子」というものがあるのですね。実は、プログラミングにおいて、他にも大事な演算子がたくさんあります。
以下の記事にまとめたので、よかったら参考にしてください。
break
Swiftでは各case節やdefault節に何か1行以上処理が書いてないと文法エラーになります。
たとえば、defaultで特に実行したい処理がない場合、以下のプログラムはエラーになります。
let number = 7
switch number {
case 5:
print("number は 5 です")
case 10:
print("number は 10 です")
default:
// 何も実行しない
}
switch文の実行を終了させる、breakを使用しましょう。
let number = 7
switch number {
case 5:
print("number は 5 です")
case 10:
print("number は 10 です")
default:
break
}
break ステートメントは、switch文内の実行を終了し、そのswitch文から抜け出すために使用されます。
まとめ
- 条件分岐を行いたい時は、if や switch が使用できる
- 範囲演算子を使用して、特定の範囲を指定することができる
ドリル
問題1
let score = 85
switch score {
case 90...:
print("成績は優秀です")
case 70..<90:
print("成績は合格です")
default:
print("成績は不合格です")
}