Swift 入門 | 制御構文 | switch 文による複数分岐
if 文は真偽値で条件を確認するため、選択肢から処理を選ぶ場合に適している。値に応じて多数の分岐を処理するには switch 文を使う。
switch 文は値を評価し、一致する分岐の処理を実行する。
switch 文の基本
switch 確認する値 {
case 値:
... 実行する処理 ...
case 値, 値 ...:
... 実行する処理 ...
default:
... そのほかの場合の処理 ...
}
確認する値
switch の後に確認する値を記述する。リテラル値、変数、式など、値として評価できるものであれば使用できる。丸かっこは省略できる。
数値、テキスト、真偽値のいずれも使用できる。
case
case の後に値を記述する。switch で確認した値と一致すると、その分岐の処理が実行される。1 つの case に複数の値を書く場合は、コンマで区切る。
多くの言語では分岐の最後に break などを書く必要があるが、Swift では不要である。一致した分岐の処理を終えると、自動的に switch 文から抜ける。
default
最後には default: を記述する。これは、どの case にも一致しない値を処理するための分岐である。多くの言語では省略できるが、Swift では基本的にすべての値を処理できるようにする必要がある。
range による範囲指定
多数の値を 1 つずつ列挙するのは不便である。その場合は range 演算子を使用する。
最小値 ... 最大値
最小値 ..< 最大値
閉区間演算子(...)は最小値と最大値の両方を含む。半開区間演算子(..<)は最小値を含むが、最大値を含まない。
次の例では switch 文で range を使用している。
var x = 300
switch x {
case 0:
"zero"
case 1...9:
"1 桁"
case 10...99:
"2 桁"
case 100...999:
"3 桁"
default:
"なし"
}
range を使うと、数値の範囲に応じた分岐を簡潔に記述できる。