在swift中,for循環(huán)和forEach非常類似根蟹,但是又有著不同之處。
1. 相同之處
for循環(huán)遍歷數(shù)組元素時:
for element in [1, 2, 3] {
print("for --- \(element)")
}
打印結(jié)果:
for --- 1
for --- 2
for --- 3
forEach遍歷時:
[1, 2, 3].forEach { element in
print("forEach -- \(element)")
}
打印結(jié)果:
forEach -- 1
forEach -- 2
forEach -- 3
這兩者看起來是相同的蝗碎。
2. 不同之處
- return表示的含義不同
- 在forEach中不能使用continue和break關(guān)鍵字
首先初斑,在for循環(huán)中舀寓,符合條件的return語句會結(jié)束整個循環(huán)過程蔗候;而在forEach中垒酬,return不能反悔到外部函數(shù)的作用域之外王带,所以并不會終止循環(huán)淑蔚,僅僅是從閉包中返回。
1. for循環(huán)中使用return:
for element in [1, 2, 3, 4] {
if element == 2 { return }
print("for --- \(element)")
}
結(jié)果:
for --- 1
2. forEach中使用return關(guān)鍵字:
[1, 2, 3, 4].forEach { element in
if element == 2 { return }
print("forEach -- \(element)")
}
結(jié)果:
forEach -- 1
forEach -- 3
forEach -- 4
3. forEach中使用continue關(guān)鍵字
[1, 2, 3, 4].forEach { element in
if element == 2 { continue }
print("forEach -- \(element)")
}
報錯: 'continue' is only allowed inside a loop
4. forEach中使用break關(guān)鍵字
[1, 2, 3, 4].forEach { element in
if element == 2 { break }
print("forEach -- \(element)")
}
報錯:Unlabeled 'break' is only allowed inside a loop or switch, a labeled break is required to exit an if or do