Swift - for-in 循环



Swift for-in 循环

for-in 循环迭代遍历集合元素,例如范围、数组、集合、字典等。它迭代遍历指定集合的每个元素,无需显式索引操作。它是最常用的控制流语句,因为它以非常简洁易读的方式表达逻辑。

它也兼容函数式编程,这意味着您可以轻松地将高阶函数(如 filter()、map()、reduce() 等)与 for-in 循环一起使用。

语法

以下是 for-in 循环的语法:

for index in var{
   Statement(s)
}

流程图

下面的流程图将展示 for-in 循环的工作原理:

For-In Loop

示例

Swift 程序演示 for-in 循环的使用。

import Foundation

var someInts:[Int] = [10, 20, 30]

for index in someInts {
   print( "Value of index is \(index)")
}

输出

它将产生以下输出:

Value of index is 10
Value of index is 20
Value of index is 30

使用下划线 "_" 的 Swift for-in 循环

在 for-in 循环中,我们还可以使用下划线 "_" 来忽略给定集合中的值。在这里,我们在 for-in 循环中用下划线 "_" 代替 **变量名**。它将在迭代时忽略当前值。当我们只想迭代给定次数并且不需要集合中的值时,通常会使用它。

语法

以下是使用下划线的 for-in 循环的语法:

for _ in var{
   Statement(s)
}

示例

Swift 程序演示如何使用带下划线的 for-in 循环。

import Foundation

let numbers = [3, 5, 76, 12, 4]

// Using the underscore to ignore the values
for _ in numbers {

   // Following code will execute in each iteration
   print("Hello!! for-in loop!")
}

输出

它将产生以下输出:

Hello!! for-in loop!
Hello!! for-in loop!
Hello!! for-in loop!
Hello!! for-in loop!
Hello!! for-in loop!

Swift for-in 循环与范围

我们也可以将范围与 for-in 循环一起使用。范围是在 for-in 循环中表示值范围的最简单方法,它可以是开区间、闭区间或半开区间。for-in 循环迭代遍历给定范围中的每个值,并且在每次迭代中,循环变量都取范围中当前元素的值。

语法

以下是使用范围的 for-in 循环的语法:

// With a closed range
for variableName in start…end{
   Statement(s)
}

// With half-open range
for variableName in start..<end{
   Statement(s)
}

示例

Swift 程序演示如何使用带范围的 for-in 循环。

import Foundation

// Using closed Range
print("Loop 1:")
for x in 1...6 {
   print(x)
}

// Using half-open Range
print("Loop 2:")
for y in 1..<6 {
   print(y)
}

输出

它将产生以下输出:

Loop 1:
1
2
3
4
5
6
Loop 2:
1
2
3
4
5

Swift for-in 循环与 stride() 函数

我们可以将 stride() 函数与 for-in 循环一起使用。stride() 函数以特定步长迭代遍历一系列值。它通常用于实现更复杂的迭代模式,或创建具有自定义迭代模式的循环。

语法

以下是使用 **stride()** 函数的 for-in 循环的语法:

for variableName in stride(from: value, to: value, by: value){
   statement(s)
}

参数

**stride()** 函数接受三个参数:

  • **from** - 包含范围的起始值。

  • **to** - 包含范围的结束值。不包含该值。

  • **by** - 包含值之间的步数或步长。如果其值为正,则步长向上迭代;如果其值为负,则步长向下迭代。

示例

Swift 程序演示如何使用带 **stride()** 函数的 for-in 循环。

import Foundation

// The stride() function moves in upward direction
print("Loop 1:")
for x in stride(from: 1, to: 7, by: 2) {
   print(x)
}

// The stride() function moves in downward direction
print("\nLoop 2:")
for y in stride(from: 7, to: 1, by: -2) {
   print(y)
}

输出

它将产生以下输出:

Loop 1:
1
3
5

Loop 2:
7
5
3

Swift for-in 循环与 where 子句

Swift 还提供了一个 where 子句,我们可以将其与 for-in 循环一起使用。where 子句用于从给定集合中过滤出仅满足 where 子句中指定条件的元素。它可以与所有可迭代集合(如数组、集合和字典)一起使用。

语法

以下是带 where 子句的 for-in 循环的语法:

for variableName in collectionName where condition{
   Statement(s)
}

示例

Swift 程序演示如何使用带 where 子句的 for-in 循环。

import Foundation
let nums = [43, 23, 66, 12, 2, 45, 33]

// Using the where clause to filter out only even elements from the array
for n in nums where n % 2 == 0 {
   print("Even number is \(n)")
}

输出

它将产生以下输出:

Even number is 66
Even number is 12
Even number is 2
广告