Swift 有三种循环:
用来重复执行一系列语句直到达成特定条件,如下图:
// 语法
for init; condition; increment{
// do something
}
// example
let albums = ["Red", "1989", "Reputation"]
for album in albums {
print("\(album) is on Apple Music")
}
while 循环从计算单一条件开始。如果条件为 true,会重复运行一系列语句,直到条件变为 false。
// 语法
while condition{
// do something
}
// example
var number = 1
while number <= 20 {
print(number)
number += 1
}
print("Ready or not, here I come!")
repeat...while 循环不像 for 和 while 循环在循环体开始执行前先判断条件语句,而是在循环执行结束时判断条件是否符合。
repeat...while无论条件是否符合,循环会执行至少一次
// 语法
repeat{
statement(s);
}while( condition );
// example
var number = 1
repeat {
print(number)
number += 1
} while number <= 20
print("Ready or not, here I come!")
使用break
退出循环语句,比如在 while 循环中:
while countDown >= 0 {
print(countDown)
if countDown == 4 {
print("I'm bored. Let's go now!")
// 当countDown等于4的时候会退出循环
break
}
countDown -= 1
}
在嵌套循环中,想要同时打破内循环和外循环是很常见的。举个例子,我们可以编写一些代码来计算从 1 到 10 的乘法表,如下所示:
for i in 1...10 {
for j in 1...10 {
let product = i * j
print ("\(i) * \(j) is \(product)")
}
}
如果需要退出这个双重循环,需要做两步,首先,给外循环加上 label:outerLoop
outerLoop: for i in 1...10 {
for j in 1...10 {
let product = i * j
print ("\(i) * \(j) is \(product)")
}
}
第二步,在内循环执行break outerLoop
outerLoop: for i in 1...10 {
for j in 1...10 {
let product = i * j
print ("\(i) * \(j) is \(product)")
if product == 50 {
print("It's a bullseye!")
break outerLoop
}
}
}
break
退出循环。但是,如果只想跳过当前条件,继续下一个条件,应该使用continue
。比如如下跳过奇数:
for i in 1...10 {
if i % 2 == 1 {
continue
}
print(i)
}