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

