原文: https://www.programiz.com/swift-programming/nested-loops
在本文中,您将通过示例了解嵌套循环及其工作方式。
如果另一个循环体内存在一个循环,则称为嵌套循环。 这是嵌套的for-in循环的示例。
for i in 1...5 {//statements of outer loopfor 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 循环在另一个for-in循环中包含一个for-in循环作为语句。 您可以根据需要具有任意数量的嵌套for-in循环。
示例 1: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)")}}
运行该程序时,输出为:
Outer loop iteration 1Inner loop iteration 1i = 1; j = 1Inner loop iteration 2i = 1; j = 2Outer loop iteration 2Inner loop iteration 1i = 2; j = 1Inner loop iteration 2i = 2; j = 2Outer loop iteration 3Inner loop iteration 1i = 3; j = 1Inner loop iteration 2i = 3; j = 2Outer loop iteration 4Inner loop iteration 1i = 4; j = 1Inner loop iteration 2i = 4; j = 2Outer loop iteration 5Inner loop iteration 1i = 5; j = 1Inner loop iteration 2i = 5; j = 2
在上面的程序中,外循环迭代 5 次。 在外循环的每次迭代中,内循环迭代 2 次。
Swift 嵌套while循环
嵌套的while循环在另一个while循环中包含一个while循环作为语句。 您可以根据需要具有任意数量的嵌套while循环。
示例 2:Swift 嵌套while循环
var i = 1while i <= 5 {print("Outer loop iteration ", i)var j = 1while j <= 2 {print("Inner loop iteration ", j)print("i = \(i); j = \(j)")j += 1}i += 1}
该程序的输出与上述程序相同。
Swift 嵌套repeat-while循环
嵌套的repeat-while循环包含一个repeat-while循环,作为另一个repeat-while循环中的语句。 您可以根据需要具有任意数量的嵌套while循环。
示例 3:Swift 嵌套repeat-while循环
var i = 1repeat {print("Outer loop iteration ", i)var j = 1repeat {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循环)。
var i = 1while 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 循环创建模式的程序
嵌套循环通常用于在编程中创建模式。 下面的程序显示了如何使用嵌套循环创建简单的模式。
let rows = 5for i in 1...rows {for j in 1...i {print("\(j) ", terminator: "")}print("")}
运行该程序时,输出为:
11 21 2 31 2 3 41 2 3 4 5
