|
|||||
|
対象: 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]
|
|||||