📜  斯威夫特 - 循环(1)

📅  最后修改于: 2023-12-03 15:26:14.516000             🧑  作者: Mango

斯威夫特 - 循环

在编程中,循环是一种执行特定代码块多次的方式。斯威夫特提供了多种循环类型,包括for-in循环、while循环和repeat-while循环。每种循环类型都有其独特的特性,可以根据需求选择适当的循环类型来实现编程目标。

for-in循环

for-in循环用于遍历可迭代集合中的每个元素。使用该循环类型可以避免手动管理循环计数器,同时可以确保循环在集合中的每个元素上执行一次。

以下是使用for-in循环求和的示例代码片段:

let numbers = [1, 2, 3, 4, 5]
var sum = 0

for number in numbers {
    sum += number
}

print(sum) // 输出: "15"

在此示例中,我们定义了一个包含数字的数组,并使用for-in循环对其进行遍历。在每次循环中,变量number将取到数组中的下一个数字,并将其累加到sum变量上。

while循环

while循环用于在指定条件为true的情况下重复执行代码块。while循环的主要优点是允许在循环中快速切换到下一个迭代,同时保持代码的简单清晰性。如果无法确定循环执行的次数或需要在特定条件下重复执行代码,则应使用while循环。

以下是使用while循环计算斐波那契数列的示例代码片段:

var a = 0, b = 1, c = 1
var fib = [a, b]

while c < 100 {
    c = a + b
    a = b
    b = c
    fib.append(c)
}

print(fib) // 输出: "[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]"

在此示例中,我们使用while循环计算斐波那契数列。在每次循环中,我们使用前两个元素(a和b)的和计算第三个元素(c),并将新的第三个元素添加到斐波那契数列中。然后,前两个元素将向前移动以准备下一个计算。

repeat-while循环

repeat-while循环使用与while循环相同的循环结构,但它首先执行代码块,然后再测试循环条件。repeat-while循环适合于需要确保代码块至少执行一次的情况。

以下是使用repeat-while循环打印九九乘法表的示例代码片段:

var i = 1

repeat {
    var line = ""
    var j = 1
    repeat {
        line += "\(i * j) "
        j += 1
    } while j <= i
    print(line)
    i += 1
} while i <= 9

在此示例中,我们使用repeat-while循环打印九九乘法表。在每次循环中,我们使用内部的repeat-while循环来打印一行乘法表,并将外部循环计数器递增,以打印下一行。因为repeat-while循环会先执行代码块,因此我们可以保证至少打印一行乘法表。