対象: Switch文(Swift)SwiftのSwitch文はCのそれと似ているがcaseにbreakは必要ない。breakがなくても処理は下のcaseに継続しない。caseで範囲演算子(...)も使えるので、数値を判定するときには便利だ。 SwiftのSwitch文がCのそれと大きく異なるのは、Switch文が網羅的(switchの条件式が、必ずcaseのどれかに当てはまる)でなければならないということだ。さもないと、コンパイル時にエラーとなる。それ故、Switch文には基本的にdefault節を置くのだが、caseにワイルドカード(_)も使えるので、以下のように書くこともできる。 // 数値の例 var n = 3 switch n { case 0 : print("nは0です。") case 1...9 : print("nは1-9です。") case _ : print("別な形のdefault") //default : // print("default") } もちろん、文字列もSwitch文で判定できる。カンマで区切れば1つのcaseに複数の値を書くこともできる。 // 文字列の例 let s = "zero" switch s { case "one" : print("sは1です。") case "two" : print("sは2です。") case "three" : print("sは3です。") case "four", "five" : print("sは4または5です。") default : print("sは1-5ではありません。") break } Switch文では通常、あるcaseからその下のcaseに処理を継続させることはできない。しかし、fallthroughを使えば処理を継続させることもできる。以下は例として今一つなのだが、最初のcase節にの最後にfallthroughがあるので、続けてdefault節の処理も行う。 // fallthroughの例 var intType = "UInt64" var message = "\(intType)は" switch intType { case "UInt", "UInt8", "UInt16", "UInt32", "UInt64" : message += "符号なし" fallthrough default : message += "整数です。" } print(message) つまり、上記の実行結果は以下のようになる。 UInt64は符号なし整数です。 尚、breakにも使い道はある。それはdefault節で何も処理を行わないときだ。case節、またはdefault節には最低1つは何か処理を書かないとコンパイルエラーとなるが、default節で何も処理をしたくないときbreakを書けば良い。 default : break (2015/02/04) () Swift 2.0対応。
Copyright© 2004-2019 モバイル開発系(K) All rights reserved.
[Home]
|