for 循环
-
一个范围的数字
for i in 0...3 { print(i) } -
字符串的字符
let names = ["张三", "李四", "王五", "赵六"] for name in names { print(name) } -
数组中的元素
for c in "hello,world!" { print(c) // print(type(of: c)) Character } -
遍历字典 当字典遍历时,每一个元素返回一个(key,value)元组,可以在 for-in 循环体中使用显示命名来分解元组成员。
let numberOfLegs = ["spider": 8, "ant": 6, "cat": 4] for (animalName, legCount) in numberOfLegs { print("\(animalName) has \(legCount) legs.") } for t in numberOfLegs { print("\(t.0) has \(t.1) legs.") } // 控制台输出结果: // ant has 6 legs. // spider has 8 legs. // cat has 4 legs. -
如果不需要序列的每一个值,则可以使用 下划线
_来取代遍历名以忽略值let base = 3 let power = 5 var answer = 1 for _ in 1...power { answer *= base } print("\(base) to the power of \(power) is \(answer)") // 控制台输出结果: // 3 to the power of 5 is 243 -
分段区间遍历
- 使用
stride(from: to: by)函数来跳过不想要的区间(开区间)。 - 闭区间使用
stride(from: through: by)即可。
let interval = 2 // 开区间 for tickMark in stride(from: 0, to: 10, by: interval) { print(tickMark) } // 控制台输出结果: // 0 // 2 // 4 // 6 // 8 // 闭区间 for tickMark in stride(from: 0, through: 10, by: interval) { print(tickMark) } // 控制台输出结果: // 0 // 2 // 4 // 6 // 8 // 10 - 使用
while 循环
-
repeat-while 循环(类似于 OC 中的 do-while)
var count = 0 repeat { print(count) count += 1 } while count < 5 // 0 // 1 // 2 // 3 // 4 while count < 5 { print(count) count += 1 } // 二者打印效果相同