# Swift 中的嵌套循环

> 原文： [https://www.programiz.com/swift-programming/nested-loops](https://www.programiz.com/swift-programming/nested-loops)

#### 在本文中，您将通过示例了解嵌套循环及其工作方式。

如果另一个循环体内存在一个循环，则称为嵌套循环。 这是嵌套的`for-in`循环的示例。

```swift
for i in 1...5 {
    //statements of outer loop
    for j in 1...2 {
        //statements of inner loop
    }
    //statements of outerloop
}

```

在此，称为`for j in 1...2`的内部循环位于`for i in 1...5`的主体内部，称为外部循环。

应该注意的是，嵌套循环可能不包含相同类型的循环。 例如，您可以将一个`while`循环放在`for`循环的主体内，但它仍然是嵌套循环。

* * *

## Swift 嵌套循环

嵌套 [for-in 循环](/swift-programming/for-in-loop "Swift for-in loop")在另一个`for-in`循环中包含一个`for-in`循环作为语句。 您可以根据需要具有任意数量的嵌套`for-in`循环。

### 示例 1：Swift 嵌套循环

```swift
for i in 1...5 {
    print("Outer loop iteration ", i)
    for j in 1...2 {
        print("Inner loop iteration ", j)
        print("i = \(i); j = \(j)")
    }
} 
```

运行该程序时，输出为：

```swift
Outer loop iteration  1
Inner loop iteration  1
i = 1; j = 1
Inner loop iteration  2
i = 1; j = 2
Outer loop iteration  2
Inner loop iteration  1
i = 2; j = 1
Inner loop iteration  2
i = 2; j = 2
Outer loop iteration  3
Inner loop iteration  1
i = 3; j = 1
Inner loop iteration  2
i = 3; j = 2
Outer loop iteration  4
Inner loop iteration  1
i = 4; j = 1
Inner loop iteration  2
i = 4; j = 2
Outer loop iteration  5
Inner loop iteration  1
i = 5; j = 1
Inner loop iteration  2
i = 5; j = 2 
```

在上面的程序中，外循环迭代 5 次。 在外循环的每次迭代中，内循环迭代 2 次。

* * *

## Swift 嵌套`while`循环

嵌套的[`while`循环](/swift-programming/repeat-while-loop "Swift while loop")在另一个`while`循环中包含一个`while`循环作为语句。 您可以根据需要具有任意数量的嵌套`while`循环。

### 示例 2：Swift 嵌套`while`循环

```swift
var i = 1
while i <= 5 {
    print("Outer loop iteration ", i)
    var j = 1
    while j <= 2 {
        print("Inner loop iteration ", j)
        print("i = \(i); j = \(j)")
        j += 1
    }
    i += 1
} 
```

该程序的输出与上述程序相同。

* * *

## Swift 嵌套`repeat-while`循环

嵌套的[`repeat-while`循环](/swift-programming/repeat-while-loop#repeat-while "Swift repeat-while loop")包含一个`repeat-while`循环，作为另一个`repeat-while`循环中的语句。 您可以根据需要具有任意数量的嵌套`while`循环。

### 示例 3：Swift 嵌套`repeat-while`循环

```swift
var i = 1
repeat {
    print("Outer loop iteration ", i)
    var j = 1
    repeat {
        print("Inner loop iteration ", j)
        print("i = \(i); j = \(j)")
        j += 1
    } while (j <= 2)
    i += 1
} while (i <= 5) 
```

程序输出与上一程序相同。

* * *

## 不同类型的 Swift 嵌套循环

不必具有相同类型的嵌套循环。 您还可以通过将一种类型的循环放入其他类型的循环中来创建嵌套循环的变体。

### 示例 3：Swift `while`和`for`的嵌套循环

下面的程序包含不同类型的嵌套循环（`while`和`for-in`循环）。

```swift
var i = 1
while i <= 5 {
    print("Outer loop iteration ", i)
    for j in 1...2 {
        print("Inner loop iteration ", j)
        print("i = \(i); j = \(j)")
    }
    i += 1
} 
```

程序输出与上一程序相同。

* * *

### 示例 4：使用 Swift 循环创建模式的程序

嵌套循环通常用于在编程中创建模式。 下面的程序显示了如何使用嵌套循环创建简单的模式。

```swift
let rows = 5
for i in 1...rows {
    for j in 1...i {
        print("\(j) ",  terminator: "")
    }
    print("")
} 
```

运行该程序时，输出为：

```swift
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
```