程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> 舉例講授Swift編程中switch...case語句的用法

舉例講授Swift編程中switch...case語句的用法

編輯:更多關於編程

舉例講授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維坐標的一切點。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved