舉例講授Swift編程中switch...case語句的用法。本站提示廣大學習愛好者:(舉例講授Swift編程中switch...case語句的用法)文章只能為提供參考,不一定能成為您想要的結果。以下是舉例講授Swift編程中switch...case語句的用法正文
Switch作為選擇構造中必弗成少的語句也被參加到了Swift中,只需有過編程經歷的人對Switch語句都不會覺得生疏,但蘋果對Switch停止了年夜年夜的加強,使其具有其他說話中沒有的特征。應用Switch語句很簡略:
var i = 0 switch i { case 0: "0" //被輸入 case 1: "1" default: "2" }
在這個最簡略的Switch語句中,與其他說話很分歧的一點是:不消顯式的加上break。Swift的Switch語句會主動在case開頭處加上break,履行美滿足前提的case部門後,就主動加入了。然則在某些情形下,我們能夠會願望Switch能同時履行兩條case,那末可以如許:
var i = 3 switch i { case 0,3: "0" //被輸入 case 1: "1" default: "2" }
在case後的多個前提中,用逗號離隔便可。
假如就是想履行完一條case以後,想持續履行下一條case,就要用到一個新的症結字:
var i = 0 switch i { case 0: "0" //被輸入 fallthrough case 1: "1" //被輸入 case 2: "2" default: "default" }
應用新的症結字fallthrough能使Switch在履行完一個case以後,緊接著履行下一條case。
Swift的Switch語句必定要涵蓋一切的情形,這其實不是說必定要有default,只需下面的case能知足一切的情形,便可以不消寫default。
上面我們來看一些小例子贊助懂得:
例1:
let someOne = ("25","liyuanbo") switch someOne { case (_,let name) where name.hasPrefix("li"): println("First name has li") default: println("First has not li") }
這裡 (_,let name) where name.hasPrefix("li") 就是在someOne2落入(_,let name)中的name有無前綴字符串有無li。固然someOne2是知足這個前提的。
例2:
上面我們來看看fallthrough的用法
switch coordinate1 { case (0,0): println("原點") fallthrough case (_,0): println("x軸") fallthrough case(0,_): println("y軸") case(-2...2,-2...2): println("矩形區域") default: println("沒有任何目的區域") }
如許我們可以看到打印輸入了:原點,x軸,y軸,假如持續加,就會打印多出一個矩形區域。
最初我們要強調一點,swift中的switch必定的包括變量的一切情形,這裡我們假如coordinate4是(10,10)然後把default正文點,就會報錯,由於下面4個前提是不克不及知足(10,10)這個點的。
那是否是說必需得有default,固然不是的,這要對變量的一切情形都包括,可以沒有default。
let coordinate2 = (2,0) switch coordinate2 { case (0,0): println("原點") case (let x,0): println("x軸") case(0,let y): println("y軸") case(let x,let y): println("一切區域") }
這裡便可以沒有default,由於這裡case(let x,let y)都包括了2維坐標的一切點。