libro
www.tuyano.com
初心者のためのSwiftプログラミング入門

制御構文をマスターしよう (2/4)

作成:2014-07-26 08:29
更新:2014-07-26 08:29

■switch文による複数分岐

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を併用することで数値を範囲ごとに分岐処理させることが簡単に行えるようになります。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

var x = 300

switch x {
case 0:
    "zero"
case 1...9:
    "1桁"
case 10...99:
    "2桁"
case 100...999:
    "3桁"
default:
    "いっぱい"
}
※関連コンテンツ

「初心者のためのSwiftプログラミング入門」に戻る