Published 2022-03-16

Looping - 循环

Swift 有三种循环:

for 循环

用来重复执行一系列语句直到达成特定条件,如下图:

sgvlgu

// 语法
for init; condition; increment{
   // do something
}

// example
let albums = ["Red", "1989", "Reputation"]
for album in albums {
    print("\(album) is on Apple Music")
}

while 循环

while 循环从计算单一条件开始。如果条件为 true,会重复运行一系列语句,直到条件变为 false。

WOrVgL

// 语法
while condition{
   // do something
}
// example
var number = 1

while number <= 20 {
    print(number)
    number += 1
}

print("Ready or not, here I come!")

repeat 循环

repeat...while 循环不像 for 和 while 循环在循环体开始执行前先判断条件语句,而是在循环执行结束时判断条件是否符合。 repeat...while无论条件是否符合,循环会执行至少一次

bF7YMc

// 语法
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
        }
    }
}

跳过条件 - continue

break退出循环。但是,如果只想跳过当前条件,继续下一个条件,应该使用continue。比如如下跳过奇数:

for i in 1...10 {
    if i % 2 == 1 {
        continue
    }

    print(i)
}