Swift中Switch的學習

來源:互聯網
上載者:User

標籤:

switch的簡單使用:

相比 C 和 objective - C 中的 switch 語句,Swift 中的 switch 語句不會預設的掉落到每個 case 的下面進入 另一個 case.相反,第一個匹配的 switch 語句當第一個匹配的 case 一完成, 就完成了它整個的執行。而不需 要一個明確的 break 語句。這使得 switch 語句比在 C 語言中使用更安全、更簡單,並避免錯誤地執行多個 case。

從例子學習:

let anotherCharacter :Character = "a"switch anotherCharacter {case "a":    println("a")case "A":    println("The letter is A")    default:    println("NOT letter")}

通過swift中的playground中可以看到上述代碼會輸出:"a"

解釋一下為什麼書"a"字元:在程式中定義一個anotherCharacter常量字元,通過Switch語句中的case進行判斷,當與第一個case相遇時發現就是我們想要找得,然後就會執行case中相應的代碼塊輸出"a"字元。

注意:每個case語句至少包含一個可執行語句,否則程式無效

case可以與多個對象進行匹配,之間用逗號隔開:

switch anotherCharacter {case "b","c","d":    println("輸出bcd")case "a","e","f":    println("輸出aef")default:    println("未找到")}//程式會輸出:輸出aef

因為在執行程式時,與第一個case中的三個對象進行比較判斷,發現沒有我們想要的,於是緊接著執行第二個case並與其中的多個對象進行比較判斷。

Switch中的元組使用:

寫一個簡單的例子:使用一個點座標(x,y),表示為一個簡單的元組型(Int,Int),並在樣本後面的圖中將其分類

let OriginPoint = (1, 1)switch OriginPoint{case (0,0):    println("(0,0) is at the origin")case (_,0):    println("(\(OriginPoint.0), 0) is on the x-axis")case (0,_):    println("(0, \(OriginPoint.1)) is on the y-axis")case (-2...2,-2...2):    println("(\(OriginPoint.0), \(OriginPoint.1)) is inside the box")default:    println("(\(OriginPoint.0), \(OriginPoint.1)) is outside of the box")    }//輸出:"(1, 1) is inside the box"

相應的說明:(_,0)和(0,_)中"_"符號在Swift中代表忽略值得意思;(-2...2,-2...2)中的代表x取值在[-2,2]的區間,y取值在[-2,2]的區間。

Swift中Switch的學習

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.