在swift中,for循环和forEach非常类似,但是又有着不同之处。
1. 相同之处
for循环遍历数组元素时:
for element in [1, 2, 3] {
print("for --- \(element)")
}
打印结果:
for --- 1
for --- 2
for --- 3
forEach遍历时:
[1, 2, 3].forEach { element in
print("forEach -- \(element)")
}
打印结果:
forEach -- 1
forEach -- 2
forEach -- 3
这两者看起来是相同的。
2. 不同之处
- return表示的含义不同
- 在forEach中不能使用continue和break关键字
首先,在for循环中,符合条件的return语句会结束整个循环过程;而在forEach中,return不能反悔到外部函数的作用域之外,所以并不会终止循环,仅仅是从闭包中返回。
1. for循环中使用return:
for element in [1, 2, 3, 4] {
if element == 2 { return }
print("for --- \(element)")
}
结果:
for --- 1
2. forEach中使用return关键字:
[1, 2, 3, 4].forEach { element in
if element == 2 { return }
print("forEach -- \(element)")
}
结果:
forEach -- 1
forEach -- 3
forEach -- 4
3. forEach中使用continue关键字
[1, 2, 3, 4].forEach { element in
if element == 2 { continue }
print("forEach -- \(element)")
}
报错: 'continue' is only allowed inside a loop
4. forEach中使用break关键字
[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