ifは真偽値で条件をチェックするため、二者択一の形でしか処理を分岐できません。値を調べて多数の分岐を行えるようにするのが「
switch」文です。
switchは、チェックする値を用意し、その値に応じて処理部分にジャンプする働きをします。これは以下のように記述します。
●switch文の基本switch チェックする値 {
case 値:
……実行する処理……
case 値 , 値 , ……:
……実行する処理……
default:
……その他の場合の処理……
}
・チェックする値switchは、その後にチェックする値を記述します。これは、値、変数、式など、値として扱えるものであれば何でも設定できます。この値の部分も、カッコは不要です(つけてもかまいません)。
値は、数字、テキスト、真偽値どれも利用することができます。
・caseについてcaseには、値を記述します。これにより、
switchに用意した値がcaseの値に一致すれば、そこにある処理が実行されるようになります。この
caseには、値は複数設定できます。この場合は、カンマで値を続けて記述します。
多くの言語では、
caseで実行する処理の最後に構文を抜けるための命令を用意しますが、swiftは不要です。swiftでは、
caseにある処理をすべて実行すると、次の
caseの前で自動的に構文を抜けるようになっています。
・defaultについてswitchの最後には、必ず
default:を用意します。これは、すべての
caseに一致するものがなかった場合の処理です。多くの言語ではこれはオプションですが、swiftの場合は必ず用意するのが基本です。
●rangeによる範囲指定caseでは複数の値を指定できますが、値が膨大になるといちいち書ききれなくなります。こうした場合に便利なのが「
range」演算子を使った範囲指定です。これは以下のように書きます。
最小値 … 最大値
最小値 ..< 最大値
rangeを使うことで最小値から最大値までの範囲の値すべてを指定することができます。「
...」は、最小値から最大値まで、「
..<」は最小値から最大値未満(最大値は含まれない)を範囲指定できます。
下に、
rangeを利用した
switchの例をあげておきます。こんな具合に、
rangeを併用することで数値を範囲ごとに分岐処理させることが簡単に行えるようになります。