条件分岐
目次>
if
( )はいらない。 ( )があってもいい。 ( )をつけないのが基本の流儀
var myMember = 1 if myMember <= 3 { println("メンバーは3人以下です。") }
if〜else
myMember = 5 if myMember <= 3 { println("メンバーは3人以下です。") }else{ println("メンバーは3人以下ではありません。") }
if〜else if〜else
switch〜case
caseに文字列が使えたりする breakはいらないみたいだけど(あってもいいみたい) caseに追加して条件をつけることができる case .South where i == 1 みたいな
enum NSEventTypeの要素を分岐させる場合、NSEventType.LeftMouseDownとしても良いし、省略して .LeftMouseDown とすることもできる。
var type:NSEventType = event.type switch type { case .LeftMouseDown : NSLog("LeftMouseDown") break case .LeftMouseUp : NSLog("LeftMouseUp") default : break }
タプル
caseにタプル)?が使える こんなの
case (-2...2, -2...2):
ポイント値の範囲などに使える
case 2, 3, 5, 7, 11, 13, 17, 19:のように複数の値を設定することができる
func function004() { let integerToDescribe = 5 var description = "The number \(integerToDescribe) is" switch integerToDescribe { case 2, 3, 5, 7, 11, 13, 17, 19: description += " a prime number, and also" fallthrough default: description += " an integer." } println(description) // prints "The number 5 is a prime number, and also an integer.” }
もっと範囲が広い場合は ... で範囲を指定することができる
case 4...9: case 10...99: case 100...999: case 1000...999_999:
バリューバインディング
where
制御文
- continue すぐにループの先頭にジャンプする
- break すぐにループを終了する
- fallthrough そのまま次へ通す。Cでbreakを使わない場合と同じ?
- return
ラベル文
複数のネスト化されたループがある場合に使用 ループに名称を付けることができて、breakするときに、どこに戻るかを明記できる。