Swift for-in 循环

在计算机编程中,循环用于重复执行一段代码。

例如,如果我们想显示一条消息 100 次,那么我们可以使用循环。这只是一个简单的例子;使用循环,您可以实现更多功能。

Swift 中有 3 种类型的循环

  1. for in 循环
  2. while 循环
  3. repeat...while 循环

Swift for-in 循环

在 Swift 中,for-in 循环用于运行一段代码固定次数。它用于迭代任何序列,例如数组、范围、字符串等。

for-in 循环的语法是

for val in sequence{
  // statements
}

在这里,val 在每次迭代中访问 sequence 的每个项目。循环会一直持续到访问 sequence 中的最后一个项目。


for-in 循环的流程图

How for-in loop works in Swift
for-in 循环的工作原理

示例:遍历数组

// access items of an array 
let languages = ["Swift", "Java", "Go", "JavaScript"]

for language in languages {
      print(language)
}

输出

Swift
Java
Go
JavaScript

在上面的示例中,我们创建了一个名为 languages 的数组。

最初,language 的值被设置为数组的第一个元素,即 Swift,因此会执行循环内的 print 语句。

language 被更新为数组的下一个元素,print 语句再次执行。这样,循环会一直运行,直到访问完数组的最后一个元素。


带 where 子句的 For 循环

在 Swift 中,我们也可以在 for-in 循环中添加 where 子句。它用于在循环中实现过滤器。也就是说,如果 where 子句中的条件返回 true,则执行循环。

// remove Java from an array

let languages = ["Swift", "Java", "Go", "JavaScript"]

for language in languages where language != "Java"{
  print(language) 
}

输出

Swift
Go
JavaScript

在上面的示例中,我们使用 for-in 循环来访问 languages 的每个元素。请注意 for-in 循环中 where 子句的使用。

for language in languages where language != "Java"

在这里,如果 where 子句中的条件返回 true,则执行循环内的代码。否则,它不会被执行。

迭代 language 条件:!= "Java" 输出
第 1 次 Swift true 打印 Swift
第 2 次 Java false 不打印 Java
第 3 次 Go true 打印 Go
第 4 次 JavaScript true 打印 JavaScript

带范围的 For 循环

一个 范围 是两个数值区间之间的一系列值。例如,

var values = 1...3

这里,1...3 定义了一个包含值 **1**、**2**、**3** 的范围。

在 Swift 中,我们可以使用 for 循环来迭代范围。例如,

// iterate from i = 1 to i = 3
for i in 1...3 {
    print(i)
}

输出

1
2
3

在上面的示例中,我们使用 for-in 循环来迭代从 **1** 到 **3** 的范围。

i 的值被设置为 1,并且在每次迭代中它会被更新为范围中的下一个数字。这个过程会一直持续到达到 3

迭代 条件 操作
第 1 次 true 打印 1i 增加到 2
第 2 次 true 打印 2i 增加到 3
第 3 次 true 打印 3i 增加到 4
第 4 次 false 循环终止

带 Stride 函数的 For 循环

如果我们希望循环在每次迭代中按某个固定值递增,而不是使用范围,我们就必须使用 stride(from:to:by) 函数。例如,

for i in stride(from: 1, to: 10, by: 2) {
    print(i)
}

输出

1
3
5
7
9

在上面的示例中,循环以 2 的间隔遍历从 110 的范围。但是,该序列不包含 10

在这里,i 的值被设置为 1,并且在每次迭代中它会以 2 的间隔更新。

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战