iOS开发Swift篇—(六)流程控制
iOS開發(fā)Swift篇—(六)流程控制
一、swift中的流程控制
Swift支持的流程結(jié)構(gòu)如下:
循環(huán)結(jié)構(gòu):for、for-in、while、do-while
選擇結(jié)構(gòu):if、switch
注意:這些語句后面一定要跟上大括號{},在C語言中不是必須的
?
說明:跟C語言對比,用法基本一樣的有:for、while、do-while、if
因此,只需要關(guān)注for-in和switch即可
?
二、for-in結(jié)構(gòu)
簡單使用:
for-in和范圍運算符
for i in 1...3 {
? ? println(i)
}
// 按順序從范圍中取值賦值給i,每取1次值,就執(zhí)行1次循環(huán)體
// 范圍的長度就是循環(huán)體執(zhí)行的次數(shù)
代碼示例:
?
提示:如果不需要用到范圍中的值,可以使用下劃線 _ 進(jìn)行忽略
for _ in 1...3 {
? ? println("*********")
}
代碼示例:
注意:i為常量,其值是不能改變的。
?
三、switch的使用
1.使用示例:
1 let grade = "B"2 switch grade {3 case "A":4 println("優(yōu)秀等級")5 case "B":6 println("良好等級")7 case "C":8 println("中等等級")9 default: 10 println("未知等級") 11 }2.switch語句在 Swift 和 C 中的區(qū)別:
在C語言中,如果case的結(jié)尾沒有break,就會接著執(zhí)行下一個case或者default語句
在Swift中,不需要在每一個case后面增加break,執(zhí)行完case對應(yīng)的代碼后默認(rèn)會自動退出switch語句
3.switch的注意點
在Swift中,每一個case后面必須有可以執(zhí)行的語句
1 let grade = "B” 2 switch grade { 3 case "A": 4 case "B": 5 println("良好等級") 6 default: 7 println("未知等級") 8 }說明:第二行代碼會報錯
4.case的多條件匹配
1個case后面可以填寫多個匹配條件,條件之間用逗號,隔開
1 let score = 952 switch score/10 {3 case 10, 9:4 println("優(yōu)秀")5 case 8, 7, 6:6 println("及格")7 default:8 println("不及格")9 } 10 // 打印結(jié)果是:優(yōu)秀5.case的范圍匹配
case后面可以填寫一個范圍作為匹配條件
1 let score = 952 switch score {3 case 90...100:4 println("優(yōu)秀")5 case 60...89:6 println("及格")7 default:8 println("不及格")9 } 10 // 打印結(jié)果是:優(yōu)秀注意:
switch要保證處理所有可能的情況,不然編譯器直接報錯
因此,這里的default一定要加,不然就出現(xiàn)了一些處理不到的情況
6.case匹配元組
case還可以用來匹配元組。比如判斷一個點是否在右圖的藍(lán)色矩形框內(nèi)
1 let point = (1, 1)2 switch point {3 case (0, 0) :4 println("這個點在原點上")5 case (_, 0) :6 println("這個點在x軸上")7 case (0, _) :8 println("這個點在y軸上")9 case (-2...2, -2...2) : 10 println("這個點在矩形框內(nèi)") 11 default: 12 println("這個點在其他位置") 13 }
第5行中 _ 的作用(2種理解方式)
(1)能匹配任何值
(2)忽略對應(yīng)位置元組元素
7.case的數(shù)值綁定
在case匹配的同時,可以將switch中的值綁定給一個特定的常量或者變量,以便在case后面的語句中使用
1 let point = (10, 0)2 switch point {3 case (let x, 0) :4 println("這個點在x軸上, x值是\(x)")5 case (0, let y) :6 println("這個點在y軸上, y值是\(y)")7 case let (x, y) :8 println("這個點的x值是\(x), y值是\(y)")9 } 10 11 // 打印:這個點在x軸上, x值是108.where
switch語句可以使用where來增加判斷的條件。比如判斷一個點是否在右圖的綠線或者紫線上
1 var point = (10, -10)2 switch point {3 case let (x, y) where x == y :4 println("這個點在綠線上")5 case let (x, y) where x == -y :6 println("這個點在紫線上")7 default :8 println("這個點不在這2條線上")9 } 10 // 打印:這個點在紫線上
9.fallthrough的作用
執(zhí)行完當(dāng)前case后,會接著執(zhí)行fallthrough后面的case或者default語句
1 let num = 202 var str = "\(num)是個"3 switch num {4 case 0...50 :5 str += "0~50之間的"6 fallthrough7 default :8 str += "整數(shù)"9 } 10 println(str) 11 // 打印:20是個0~50之間的整數(shù)注意:fallthrough后面的case條件不能定義變量和常量
10.標(biāo)簽
使用標(biāo)簽的其中1個作用:可以用于明確指定要退出哪個循環(huán)
1 // 做2組俯臥撐,每組3個,做完一組就休息一會2 group :3 for _ in 1...2 {4 for item in 1...3 {5 println("做1個俯臥撐")6 if item == 2 {7 break group8 }9 } 10 println("休息一會") 11 }輸出結(jié)果是
做1個俯臥撐
做1個俯臥撐
代碼示例:
總結(jié)
以上是生活随笔為你收集整理的iOS开发Swift篇—(六)流程控制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Node.JS 学习路线图
- 下一篇: swift -- 数组
