標籤:
知識點:
- for in迴圈中的變數可以使用底線_,意思是不需要用到此變數,系統就不會給變數分配儲存空間
- switch中case後面必須有可執行檔語句,如果有許多結果需要執行同一個語句的話,swift支援多條件匹配
- switch支援範圍匹配
- switch可以匹配元組資料
- switch可以綁定數值
- switch中的case可以使用where來增加判斷條件
- fallthrough關鍵字,當執行完前case後,會接著執行fallthrough後面的case或者default語句,fallthrough後面的case語句中的判斷條件不能定義變數
- 標籤
範例程式碼:
//: 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學習—流程式控制制