亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Swift編程中的switch...case語句實例解析

 更新時間:2016年04月13日 14:16:04   作者:Walden_tinghou  
這篇文章主要介紹了Swift編程中的switch...case語句實例解析,其中重點還是對于fallthrough關鍵字用法的講解,需要的朋友可以參考下

Swift中的switch...case語句可以判斷對象類型, Objective-C中則必須是整數(shù)。
不可以穿透,可以不寫break,

var rank = "A"
switch rank{
  case "A": //相當于if
    print("優(yōu)")
  case "B": // 相當于else if
    print("優(yōu)")
  case "C": // 相當于else if
    print("優(yōu)")
  default: // 相當于else
    print("沒有評級")
}


因為不能穿透所以不能這么寫

var rank1 = "A"
switch rank1{
  case "A":
  case "B":
    print("優(yōu)")
  case "C":
    print("優(yōu)")
  default:
    print("沒有評級")
}


只能這么寫

var rank1 = "A"
switch rank1{
  case "A", "B": // 注意OC不能這樣寫
    print("優(yōu)")
  case "C":
    print("差")
  default:
    print("沒有評級")
}

不能不寫default

var rank2 = "A"
switch rank2{
  case "A":
    print("優(yōu)")
  case "B":
    print("良")
  case "C":
    print("差")
}

default位置只能在最后

var rank3 = "A"
switch rank3{
  default:
    print("沒有評級")
  case "A":
    print("優(yōu)")
  case "B":
    print("良")
  case "C":
    print("差")
}

在case中定義變量不用加大括號

var rank4 = "A"
switch rank4{
  case "A":
    var num = 10
    print("優(yōu)")
  case "B":
    print("良")
  case "C":
    print("差")
  default:
    print("沒有評級")
}

區(qū)間和元祖匹配

var num = 10;
switch num{
  case 1...9:
    print("個位數(shù)")
  case 10...99:
    print("十位數(shù)")
  default:
    print("其它數(shù)")
}
var point = (10, 15)
switch point{
  case (0, 0):
    print("坐標在原點")
  case (1...10, 10...20): // 可以在元祖中再加上區(qū)間
    print("坐標的X和Y在1~10之間")
  case (_, 0): // X可以是任意數(shù)
    print("坐標的X在X軸上")
  default:
    print("Other")
}

值綁定

var point = (1, 10)
switch point{
  case (var x, 10): // 會將point中X的值賦值給X
    print("x= \(x)")
  case (var x, var y): // 會將point中XY的值賦值給XY
    print("x= \(x) y= \(y)")
  case var( x, y):
    print("x= \(x) y= \(y)")
  default:
    print("Other")
}

根據(jù)條件綁定

var point = (100, 10)
switch point{
  // 只有where后面的條件表達式為真才賦值并執(zhí)行case后的語句
  case var(x, y) where x > y: 
    print("x= \(x) y= \(y)")
  default:
    print("Other")
}

fallthrough關鍵字
Swift語言中的switch不會從上一個case分支落入到下一個case分支中。相反,只要第一個匹配到的case分支完成了它需要執(zhí)行的語句,整個switch代碼塊完成了它的執(zhí)行。相比之下,C語言要求你顯示的插入break語句到每個switch分支的末尾來阻止自動落入到下一個case分支中。Swift語言的這種避免默認落入到下一個分支中的特性意味著它的switch 功能要比C語言的更加清晰和可預測,可以避免無意識地執(zhí)行多個case分支從而引發(fā)的錯誤。
 
如果你確實需要C風格的落入(fallthrough)的特性,你可以在每個需要該特性的case分支中使用fallthrough關鍵字。下面的例子使用fallthrough來創(chuàng)建一個數(shù)字的描述語句。

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." 

這個例子定義了一個String類型的變量description并且給它設置了一個初始值。函數(shù)使用switch邏輯來判斷integerToDescribe變量的值。當integerToDescribe的值屬于列表中的質(zhì)數(shù)之一時,該函數(shù)添加一段文字在description后,來表明這個是數(shù)字是一個質(zhì)數(shù)。然后它使用fallthrough關鍵字來"落入"到default分支中。default分支添加一段額外的文字在description的最后,至此switch代碼塊執(zhí)行完了。
 
如果integerToDescribe的值不屬于列表中的任何質(zhì)數(shù),那么它不會匹配到第一個switch分支。而這里沒有其他特別的分支情況,所以integerToDescribe匹配到包含所有的default分支中。
 
當switch代碼塊執(zhí)行完后,使用println函數(shù)打印該數(shù)字的描述。在這個例子中,數(shù)字5被準確的識別為了一個質(zhì)數(shù)。
 
NOTE:fallthrough關鍵字不會檢查它下一個將會落入執(zhí)行的case中的匹配條件。fallthrough簡單地使代碼執(zhí)行繼續(xù)連接到下一個case中的執(zhí)行代碼,這和C語言標準中的switch語句特性是一樣的。

相關文章

  • swift實現(xiàn)顏色漸變以及轉(zhuǎn)換動畫

    swift實現(xiàn)顏色漸變以及轉(zhuǎn)換動畫

    這篇文章主要為大家詳細介紹了swift實現(xiàn)顏色漸變以及轉(zhuǎn)換動畫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Swift中使用正則表達式的一些方法

    Swift中使用正則表達式的一些方法

    這篇文章主要介紹了Swift中使用正則表達式的一些方法,Swift語言對正則表達式的支持也在不斷改進中,需要的朋友可以參考下
    2015-07-07
  • RxSwift學習之Observable的新建、訂閱及取消訂閱

    RxSwift學習之Observable的新建、訂閱及取消訂閱

    這篇文章主要給大家介紹了關于RxSwift學習教程之Observable的相關資料,文中詳細的給大家介紹了關于新建Observable、訂閱Observable和取消訂閱并消除內(nèi)存泄漏等相關的內(nèi)容,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-09-09
  • Swift實現(xiàn)多個TableView側(cè)滑與切換效果

    Swift實現(xiàn)多個TableView側(cè)滑與切換效果

    這篇文章主要為大家詳細介紹了Swift實現(xiàn)多個TableView側(cè)滑與切換效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Swift實現(xiàn)簡單計算器項目

    Swift實現(xiàn)簡單計算器項目

    這篇文章主要為大家詳細介紹了Swift實現(xiàn)簡單計算器項目,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • swift 3.0中realm封裝類示例代碼

    swift 3.0中realm封裝類示例代碼

    這篇文章主要給大家介紹了關于swift 3.0中realm封裝類的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用swift具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-10-10
  • 詳解Swift?中的幻象類型

    詳解Swift?中的幻象類型

    讓我們來看看一種技術,它可以讓我們利用?Swift?的類型系統(tǒng)在編譯時執(zhí)行更多種類的數(shù)據(jù)驗證消除更多潛在的歧義來源,并幫助我們在整個代碼庫中保持類型安全,通過使用幻象類型(phantom?types),對Swift?幻象類型相關知識感興趣的朋友一起看看吧
    2022-05-05
  • swift語言Codable?用法及原理詳解

    swift語言Codable?用法及原理詳解

    這篇文章主要為大家介紹了swift語言Codable?用法及原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • swift 可選型的使用詳解

    swift 可選型的使用詳解

    可選性是Swift提供的一個特殊類型,它為我們編寫程序提供便利的條件。這篇文章主要介紹了swift 可選型的使用詳解,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2016-10-10
  • 在Swift程序中實現(xiàn)手勢識別的方法

    在Swift程序中實現(xiàn)手勢識別的方法

    這篇文章主要介紹了在Swift程序中實現(xiàn)手勢識別的方法,蘋果的Swift語言即將進入2.0開源階段,人氣爆棚中:D 需要的朋友可以參考下
    2015-07-07

最新評論