📅  最后修改于: 2023-12-03 15:26:14.516000             🧑  作者: Mango
在编程中,循环是一种执行特定代码块多次的方式。斯威夫特提供了多种循环类型,包括for-in循环、while循环和repeat-while循环。每种循环类型都有其独特的特性,可以根据需求选择适当的循环类型来实现编程目标。
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循环用于在指定条件为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循环使用与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循环会先执行代码块,因此我们可以保证至少打印一行乘法表。