Swift學習—流程式控制制

來源:互聯網
上載者:User

標籤:

知識點:

  1. for in迴圈中的變數可以使用底線_,意思是不需要用到此變數,系統就不會給變數分配儲存空間
  2. switch中case後面必須有可執行檔語句,如果有許多結果需要執行同一個語句的話,swift支援多條件匹配
  3. switch支援範圍匹配
  4. switch可以匹配元組資料
  5. switch可以綁定數值
  6. switch中的case可以使用where來增加判斷條件
  7. fallthrough關鍵字,當執行完前case後,會接著執行fallthrough後面的case或者default語句,fallthrough後面的case語句中的判斷條件不能定義變數
  8. 標籤
範例程式碼:

//: Playground - noun: a place where people can playimport UIKit// 1、for in迴圈// 這裡的i是let型,即常量,如果在迴圈體重更改i的值的話會報錯for i in 1...4 {    println("***********\(i)")}// 如果沒用到i值的話,可以將其寫成底線_,這樣系統就不會為i開闢儲存空間for _ in 1...4 {    println("***********")}// 2、switch語句// switch要求必須處理所有情況,否則報錯。所以default一般是不省略// swift中switch語句的參數可以是字串// swift中的switch的case中沒有breaklet flag = "abc"switch flag {    case "abc":        println("abc")    case "bcd":        println("bcd")    case "def":        println("def")    default:        println("default")}// switch中case後面必須有可執行檔語句,如果有許多結果需要執行同一個語句的話,swift支援多條件匹配var gread = 90 / 10switch gread {    case 10, 9:        println("優秀")    case 8, 7:        println("良好")    case 6:        println("及格")    default:        println("不及格")}// switch中的範圍匹配var score = 95switch score {    case 90...100:        println("優秀")    case 89...60:        println("良好")    default:        println("不及格")}// switch匹配元組資料// 判斷point是否在一個X軸為-2...2,Y軸為-2...2的矩形框內let point = (1, 1)switch point {    case (0, 0):        println("這個點是座標原點")//    這裡的底線_可以理解為忽略掉X軸的值,或者理解為任何值都行    case (_, 0):        println("這個點在X軸上")    case (0, _):        println("這個點在Y軸上")    case (-2...2, -2...2):        println("這個點在一個X軸為-2...2,Y軸為-2...2的矩形框內")    default:        println("這個點在矩形之外")}// case的數值綁定let point1 = (10, 0)switch point1 {    case (let x, 0):        println("點位於X軸上,X值為\(x)")    case (0, let y):        println("點位於Y軸上,Y值為\(y)")//    這裡的寫法相當於case (let x, let y)    case let (x, y):        println("X值為\(x),Y值為\(y)")}// switch中的case可以使用where來增加判斷條件let point2 = (10, -10)switch point2 {    case let (x, y) where x == y:        println("單調遞增")    case let (x, y) where x == -y:        println("單調遞減")    default:        println("不在這兩條線上")}// fallthrough// 當執行完前case後,會接著執行fallthrough後面的case或者default語句// fallthrough後面的case語句中的判斷條件不能定義變數let num = 20var str = "\(num)是個"switch num {    case 0...50:        str += "0~50之間的"        fallthrough    default:        str += "整數"}// 3、標籤out: for _ in 1...2 {        for _ in 1...3 {        println("start")        //        這裡的break是跳出當前迴圈//        break        //        這裡的break是跳出父迴圈,out就是標籤        break out    }        println("==========")}

Swift學習—流程式控制制

相關文章

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.