欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

在這個(gè)最簡(jiǎn)單的Switch語句中,與其他語言很不同的一點(diǎn)是:不用顯式的加上break。Swift的Switch語句會(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)隔開即可。
如果就是想執(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語句一定要涵蓋所有的情況,這并不是說一定要有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有沒有前綴字符串有沒有l(wèi)i。當(dāng)然someOne2是滿足這個(gè)條件的。


例2:
下面我們來看看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("沒有任何目標(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)的。


那是不是說必須得有default,當(dāng)然不是的,這要對(duì)變量的所有情況都包含,可以沒有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ū)域")
 
}

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

相關(guān)文章

  • 深入理解Swift中的變量與常量

    深入理解Swift中的變量與常量

    本文主要是介紹Swift中最常用的常量和變量,將從“變量常量的定義”、"如何聲明變量常量"、“變量和常量的命名”,"變量常量的本質(zhì)區(qū)別"四個(gè)方面入手,重點(diǎn)介紹變量和常量的使用以及區(qū)別,希望大家在閱讀完本文后都可以熟練使用它們。有需要的朋友們下面來一起學(xué)習(xí)吧。
    2017-01-01
  • Objective-C中的block與Swift中的尾隨閉包使用教程

    Objective-C中的block與Swift中的尾隨閉包使用教程

    Block是OC中的閉包,他和swift中的閉包有什么區(qū)別呢?下面這篇文章就來給大家介紹關(guān)于Objective-C中的block與Swift中的尾隨閉包使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2017-12-12
  • Swift利用CoreData如何存儲(chǔ)多種數(shù)據(jù)類的通訊錄

    Swift利用CoreData如何存儲(chǔ)多種數(shù)據(jù)類的通訊錄

    這篇文章主要給大家介紹了關(guān)于Swift利用CoreData如何存儲(chǔ)多種數(shù)據(jù)類的通訊錄的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • Swift能代替Objective-C嗎?

    Swift能代替Objective-C嗎?

    這是我在網(wǎng)上上看到的答案,復(fù)制粘貼過來和大家分享一下,因?yàn)槲液秃芏嗳艘粯雍荜P(guān)心Swift的出現(xiàn)對(duì)Mac開發(fā)的影響和對(duì)Objective-C的影響。
    2014-09-09
  • 深入解析Swift中switch語句對(duì)case的數(shù)據(jù)類型匹配的支持

    深入解析Swift中switch語句對(duì)case的數(shù)據(jù)類型匹配的支持

    這篇文章主要介紹了Swift中switch語句對(duì)case的數(shù)據(jù)類型匹配的支持,Swift中switch...case語句支持多種數(shù)據(jù)類型的匹配判斷,十分強(qiáng)大,需要的朋友可以參考下
    2016-04-04
  • 簡(jiǎn)單了解Swift語言中的break和continue語句的用法

    簡(jiǎn)單了解Swift語言中的break和continue語句的用法

    這篇文章主要簡(jiǎn)單介紹了Swift語言中的break和continue語句的用法,與其他語言的一樣用于循環(huán)語句流程控制,需要的朋友可以參考下
    2015-11-11
  • RxSwift使用技巧之過濾操作詳解

    RxSwift使用技巧之過濾操作詳解

    RxSwift的目的是讓讓數(shù)據(jù)/事件流和異步任務(wù)能夠更方便的序列化處理,能夠使用Swift進(jìn)行響應(yīng)式編程,下面這篇文章主要給大家介紹了關(guān)于RxSwift使用技巧之過濾操作的相關(guān)資料,需要的朋友可以參考下。
    2017-09-09
  • Swift 3.0基礎(chǔ)學(xué)習(xí)之枚舉類型

    Swift 3.0基礎(chǔ)學(xué)習(xí)之枚舉類型

    枚舉在編程中很多時(shí)候要用到,在 Swift 中,枚舉具有更多的特性。下面這篇文章主要介紹了Swift 3.0基礎(chǔ)學(xué)習(xí)之枚舉類型的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-03-03
  • 深入解析Swift編程中枚舉類型的相關(guān)使用

    深入解析Swift編程中枚舉類型的相關(guān)使用

    這篇文章主要介紹了Swift編程中枚舉類型的相關(guān)使用,是Swift入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-11-11
  • SwiftUI學(xué)習(xí)之state和Binding的區(qū)別淺析

    SwiftUI學(xué)習(xí)之state和Binding的區(qū)別淺析

    這篇文章主要給大家介紹了關(guān)于SwiftUI學(xué)習(xí)之state和Binding區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評(píng)論