Swift學(xué)習(xí)筆記之邏輯分支與循環(huán)體
分支的介紹
- 分支即if/switch/三目運(yùn)算符等判斷語(yǔ)句
- 通過(guò)分支語(yǔ)句可以控制程序的執(zhí)行流程
1.if
OC
- 后面條件必須加()
- 后面提條件非0即真
- 如果只有一條if后面的大括號(hào)可省略
if(a>0)NSlog(@"yes");
Swift
- if 后面不加括號(hào)
- if 后面條件必須是明確的Bool類型
- 即使只有一條指令if后面的大括號(hào)亦不可省略
if else 的使用與OC一致,只是條件語(yǔ)句后不加括號(hào);三目運(yùn)算符和OC基本一致;
2.guard
guard 是swift2.0 新增語(yǔ)法
與if語(yǔ)句非常類似,設(shè)計(jì)目的是提高程序的可讀性
guard語(yǔ)句必須帶有else語(yǔ)句,語(yǔ)法如下
當(dāng)條件表達(dá)式為true時(shí),跳過(guò)else語(yǔ)句中的內(nèi)容,執(zhí)行語(yǔ)句組內(nèi)容
當(dāng)條件表達(dá)式為false時(shí) ,執(zhí)行else語(yǔ)句內(nèi)容,跳轉(zhuǎn)語(yǔ)句一般是return,break,continue,throw
//如果一個(gè)成年人帶了省份證才能上網(wǎng) func cherk(age:Int hasCard:Bool){ if age >= 18{ if hasCard{ print("老板,開(kāi)個(gè)機(jī)") }else{ print("回家拿身份證") } else{ print("未成年不能上網(wǎng)") } } func cherkGuard(age:Int hasCard:Bool){ guard age >= 18 else { print("老板,開(kāi)個(gè)機(jī)") return } guard hasCard else { print("回家拿省份證") return } print("未成年不能上網(wǎng)") }
2.switch的基本使用
OC中
- switch后面條件必須加()
- case后面只能跟一個(gè)條件
- case會(huì)有穿透效果
- 可以不寫(xiě)default
- default位置可以隨便放
- 在case中定義變量需加大括號(hào),否則作用域會(huì)混亂
- 不能判斷對(duì)象或浮點(diǎn)類型,只能判斷整數(shù)
Swift中
- switch后面條件可以不加()
- case后面能跟多個(gè)條件用逗號(hào)隔開(kāi)
- case不會(huì)有穿透效果 要穿透后面加fallthrough
- 不可以不寫(xiě)default
- default位置必須放最后
- 在case中定義變量不需加大括號(hào)
- 能判斷對(duì)象或浮點(diǎn)類型,只能判斷整數(shù)
3.switch的特殊使用
區(qū)間匹配
區(qū)間概念:
通常描述的是數(shù)字區(qū)間
半開(kāi)半閉區(qū)間
閉區(qū)間
let range = 0...10//閉區(qū)間代表區(qū)間0~10 let range1 = 0..<10半開(kāi)半閉區(qū)間代表區(qū)間0~9
區(qū)間操作:
- 交集:clamped
- 是否重疊:overipas
- 判斷包含:contains
- 是否為空:isEmpty
元組匹配
let point = (10,15) switch point{ case (0,0) print("坐標(biāo)在原點(diǎn)") case (1...10,1...10)//可在元祖中加上區(qū)間 print("坐標(biāo)X,Y在1...10之間") case (,0)//可在元祖中加上區(qū)間 print("坐標(biāo)X在X軸上") default print("其它") }
值綁定
let point = (10,15) switch point{ case (var x,0) print("x=\(x)")//point中的x賦值給x case (10,var y) print("y=\(y)")//point中的y賦值給y case var(x,y) print("x=\(x) y=\(y)")//point中的xy賦值給xy default print("其它") }
根據(jù)條件綁定
let point = (100,10) switch point{ //只有where后面的條件語(yǔ)句表達(dá)式為真財(cái)賦值并執(zhí)行case后面的語(yǔ)句 case var( x,y) where x > y print("x=\(x) y=\(y)") default print("其它") }
3.for循環(huán)
區(qū)間寫(xiě)法
for _ in 0..<10{ //_代表忽略的意思 print("xxx") }
4.while循環(huán)與do while循環(huán)
while 循環(huán)
var i =10 while i > 0{ i-=1; print (i) }
do while 循環(huán)
repeat {//swift 中不用do ,do在swift有特殊含義,用于捕捉異常 i +=1 print(i) }while i < 10
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
- Swift流程控制之循環(huán)語(yǔ)句和判斷語(yǔ)句詳解
- Swift循環(huán)遍歷集合的方法總結(jié)分享
- 詳解Swift語(yǔ)言的while循環(huán)結(jié)構(gòu)
- 詳解Swift編程中的for循環(huán)的編寫(xiě)方法
- Swift中循環(huán)語(yǔ)句中的轉(zhuǎn)移語(yǔ)句 break 和 continue
- Swift中的條件判斷、循環(huán)、跳轉(zhuǎn)語(yǔ)句基礎(chǔ)學(xué)習(xí)筆記
- swift中c風(fēng)格的for循環(huán)執(zhí)行效率
- Swift中如何避免循環(huán)引用的方法
相關(guān)文章
RxSwift實(shí)現(xiàn)替換delegate的方法示例
這篇文章主要給大家介紹了關(guān)于RxSwift實(shí)現(xiàn)替換delegate的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用RxSwift具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Swift 圖表使用Foudation庫(kù)中測(cè)量類型詳解
這篇文章主要為大家介紹了Swift 圖表使用Foudation庫(kù)中測(cè)量類型詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10Swift項(xiàng)目中利用SWRevealViewController實(shí)現(xiàn)側(cè)滑菜單
這篇文章主要介紹了Swift項(xiàng)目中利用SWRevealViewController實(shí)現(xiàn)側(cè)滑菜單,需要的朋友可以參考下2015-12-12swift中利用runtime交換方法的實(shí)現(xiàn)示例
這篇文章主要給大家介紹了關(guān)于swift中利用runtime交換方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-05-05Swift開(kāi)發(fā)之使用UIRefreshControl實(shí)現(xiàn)下拉刷新數(shù)據(jù)及uirefreshcontrol使用
本文給大家介紹使用UIRefreshControl實(shí)現(xiàn)下拉刷新數(shù)據(jù),及UIRefreshControl的使用步驟,對(duì)本文感興趣的朋友一起學(xué)習(xí)吧2015-11-11Swift使用CollectionView實(shí)現(xiàn)廣告欄滑動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了Swift使用CollectionView實(shí)現(xiàn)廣告欄滑動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06