最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

舉例講解Swift編程中switch...case語(yǔ)句的用法

 更新時(shí)間:2016年04月13日 11:29:16   作者:wizardforcel  
這篇文章主要介紹了Swift編程中switch...case語(yǔ)句的用法,其中fallthrough關(guān)鍵字在switch語(yǔ)句中的使用是重點(diǎn),需要的朋友可以參考下

Switch作為選擇結(jié)構(gòu)中必不可少的語(yǔ)句也被加入到了Swift中,只要有過(guò)編程經(jīng)驗(yàn)的人對(duì)Switch語(yǔ)句都不會(huì)感到陌生,但蘋(píng)果對(duì)Switch進(jìn)行了大大的增強(qiáng),使其擁有其他語(yǔ)言中沒(méi)有的特性。使用Switch語(yǔ)句很簡(jiǎn)單:

var i = 0 
switch i { 
 case 0: 
  "0" //被輸出 
 case 1: 
  "1" 
 default: 
  "2" 
} 

在這個(gè)最簡(jiǎn)單的Switch語(yǔ)句中,與其他語(yǔ)言很不同的一點(diǎn)是:不用顯式的加上break。Swift的Switch語(yǔ)句會(huì)自動(dòng)在case結(jié)尾處加上break,執(zhí)行完滿足條件的case部分后,就自動(dòng)退出了。但是在某些情況下,我們可能會(huì)希望Switch能同時(shí)執(zhí)行兩條case,那么可以這樣:

var i = 3 
switch i { 
 case 0,3: 
  "0" //被輸出 
 case 1: 
  "1" 
 default: 
  "2" 
} 

在case后的多個(gè)條件中,用逗號(hào)隔開(kāi)即可。
如果就是想執(zhí)行完一條case之后,想繼續(xù)執(zhí)行下一條case,就要用到一個(gè)新的關(guān)鍵字:

var i = 0 
switch i { 
 case 0: 
  "0" //被輸出 
  fallthrough 
 case 1: 
  "1" //被輸出 
 case 2: 
  "2" 
 default: 
  "default" 
} 

使用新的關(guān)鍵字fallthrough能使Switch在執(zhí)行完一個(gè)case之后,緊接著執(zhí)行下一條case。
Swift的Switch語(yǔ)句一定要涵蓋所有的情況,這并不是說(shuō)一定要有default,只要上面的case能滿足所有的情況,就可以不用寫(xiě)default。


下面我們來(lái)看一些小例子幫助理解:

例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有沒(méi)有前綴字符串有沒(méi)有l(wèi)i。當(dāng)然someOne2是滿足這個(gè)條件的。


例2:
下面我們來(lái)看看fallthrough的用法

switch coordinate1
 {
case (0,0):
 println("原點(diǎn)")
 fallthrough
case (_,0):
 println("x軸")
 fallthrough
case(0,_):
 println("y軸")
case(-2...2,-2...2):
 println("矩形區(qū)域")
default:
 println("沒(méi)有任何目標(biāo)區(qū)域")
 
}

這樣我們可以看到打印輸出了:原點(diǎn),x軸,y軸,如果繼續(xù)加,就會(huì)打印多出一個(gè)矩形區(qū)域。

最后我們要強(qiáng)調(diào)一點(diǎn),swift中的switch一定的包含變量的所有情況,這里我們?nèi)绻鹀oordinate4是(10,10)然后把default注釋點(diǎn),就會(huì)報(bào)錯(cuò),因?yàn)樯厦?個(gè)條件是不能滿足(10,10)這個(gè)點(diǎn)的。


那是不是說(shuō)必須得有default,當(dāng)然不是的,這要對(duì)變量的所有情況都包含,可以沒(méi)有default。

let coordinate2 = (2,0)

switch coordinate2
 {
case (0,0):
 println("原點(diǎn)")
case (let x,0):
 println("x軸")
case(0,let y):
 println("y軸")
 
case(let x,let y):
 println("所有區(qū)域")
 
}

這里就可以沒(méi)有default,因?yàn)檫@里case(let x,let y)都包含了2維坐標(biāo)的所有點(diǎn)。

相關(guān)文章

  • Swift語(yǔ)言中的函數(shù)學(xué)習(xí)教程

    Swift語(yǔ)言中的函數(shù)學(xué)習(xí)教程

    這篇文章主要介紹了Swift語(yǔ)言中的函數(shù)學(xué)習(xí)教程,著重講了Swift函數(shù)的參數(shù)傳遞用法,需要的朋友可以參考下
    2015-11-11
  • 倉(cāng)庫(kù)模式及其在Swift?項(xiàng)目中的應(yīng)用詳解

    倉(cāng)庫(kù)模式及其在Swift?項(xiàng)目中的應(yīng)用詳解

    這篇文章主要為大家介紹了倉(cāng)庫(kù)模式及其在Swift?項(xiàng)目中的應(yīng)用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • 分析Swift性能高效的原因

    分析Swift性能高效的原因

    絕大多數(shù)公司選擇Swift語(yǔ)言開(kāi)發(fā)iOS應(yīng)用,主要原因是因?yàn)镾wift相比Objc有更快的運(yùn)行效率,更加安全的類型檢測(cè),更多現(xiàn)代語(yǔ)言的特性提升開(kāi)發(fā)效率;這一系列的優(yōu)點(diǎn)使Swift語(yǔ)言的熱度越來(lái)越高。
    2020-10-10
  • IOS 實(shí)現(xiàn)簡(jiǎn)單的彈幕功能

    IOS 實(shí)現(xiàn)簡(jiǎn)單的彈幕功能

    本文主要介紹IOS 實(shí)現(xiàn)彈幕功能,這里給大家一個(gè)實(shí)例來(lái)展現(xiàn)彈幕功能,有需要的小伙伴可以參考下
    2016-07-07
  • 詳細(xì)講解Swift中的類型占位符

    詳細(xì)講解Swift中的類型占位符

    類型占位符是swift5.6中引?的?個(gè)新功能,在處理稍微復(fù)雜的通?類型時(shí),它可能真的很有用,這篇文章主要給大家介紹了關(guān)于Swift類型占位符的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Swift?enum枚舉類型使用詳解

    Swift?enum枚舉類型使用詳解

    這篇文章主要為大家介紹了Swift?enum枚舉類型的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Swift代碼實(shí)現(xiàn)冒泡排序算法的簡(jiǎn)單實(shí)例

    Swift代碼實(shí)現(xiàn)冒泡排序算法的簡(jiǎn)單實(shí)例

    冒牌排序可謂最基本的排序算法之一,穩(wěn)定而沒(méi)有優(yōu)化空間:D 下面就一起來(lái)看一下Swift代碼實(shí)現(xiàn)冒泡排序算法的簡(jiǎn)單實(shí)例:
    2016-06-06
  • Swift流程控制之循環(huán)語(yǔ)句和判斷語(yǔ)句詳解

    Swift流程控制之循環(huán)語(yǔ)句和判斷語(yǔ)句詳解

    這篇文章主要介紹了Swift流程控制之循環(huán)語(yǔ)句和判斷語(yǔ)句詳解,文中還使用了一個(gè)游戲例子來(lái)講解循環(huán)語(yǔ)句和判斷語(yǔ)句的使用,需要的朋友可以參考下
    2014-07-07
  • RxSwift學(xué)習(xí)教程之基礎(chǔ)篇

    RxSwift學(xué)習(xí)教程之基礎(chǔ)篇

    RxSwift是Swift函數(shù)響應(yīng)式編程的一個(gè)開(kāi)源庫(kù),由Github的ReactiveX組織開(kāi)發(fā),維護(hù)。下面這篇文章主要給大家介紹了關(guān)于RxSwift學(xué)習(xí)之基礎(chǔ)篇的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-09-09
  • 深入理解Swift語(yǔ)言中的閉包機(jī)制

    深入理解Swift語(yǔ)言中的閉包機(jī)制

    這篇文章主要介紹了Swift語(yǔ)言中的閉包機(jī)制,是Swift入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-11-11

最新評(píng)論

青浦区| 茂名市| 遂溪县| 阿巴嘎旗| 昌宁县| 伊金霍洛旗| 武平县| 彰化市| 仪征市| 中牟县| 安龙县| 塘沽区| 宁都县| 普宁市| 阿勒泰市| 弋阳县| 吉木萨尔县| 藁城市| 巴马| 漾濞| 明光市| 成武县| 玉林市| 中牟县| 化德县| 东乌珠穆沁旗| 子洲县| 类乌齐县| 大理市| 鹿泉市| 西峡县| 福州市| 阿拉善左旗| 涞源县| 天水市| 防城港市| 蒙山县| 永安市| 尼玛县| 泉州市| 台北市|