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 を使うと、数値の範囲に応じた分岐を簡潔に記述できる。