在本文中,您將通過示例了解嵌套循環(huán)及其工作方式。
如果一個循環(huán)存在于另一個循環(huán)的主體內(nèi),則稱為嵌套循環(huán)。這是嵌套的for-in循環(huán)的示例。
for i in 1...5 { //外循環(huán)語句 for j in 1...2 { //內(nèi)循環(huán)語句 } //外循環(huán)語句 }
這里,for j in 1...2 循環(huán)稱為內(nèi)循環(huán),它位于for i in 1...5稱為外循環(huán)的主體內(nèi)部。
應(yīng)該注意的是,嵌套循環(huán)可能不包含相同類型的循環(huán)。例如,您可以將一個while循環(huán)放在for循環(huán)的主體內(nèi),但它仍然是嵌套循環(huán)。
嵌套的for-in循環(huán)在另一個for-in循環(huán)中包含一個for-in循環(huán)作為語句。您可以根據(jù)需要具有任意數(shù)量的嵌套for-in循環(huán)。
for i in 1...5 { print("外循環(huán)迭代 ", i) for j in 1...2 { print("內(nèi)循環(huán)迭代 ", j) print("i = \(i); j = \(j)") } }
運行該程序時,輸出為:
外循環(huán)迭代 1 內(nèi)循環(huán)迭代 1 i = 1; j = 1 內(nèi)循環(huán)迭代 2 i = 1; j = 2 外循環(huán)迭代 2 內(nèi)循環(huán)迭代 1 i = 2; j = 1 內(nèi)循環(huán)迭代 2 i = 2; j = 2 外循環(huán)迭代 3 內(nèi)循環(huán)迭代 1 i = 3; j = 1 內(nèi)循環(huán)迭代 2 i = 3; j = 2 外循環(huán)迭代 4 內(nèi)循環(huán)迭代 1 i = 4; j = 1 內(nèi)循環(huán)迭代 2 i = 4; j = 2 外循環(huán)迭代 5 內(nèi)循環(huán)迭代 1 i = 5; j = 1 內(nèi)循環(huán)迭代 2 i = 5; j = 2
在上面的程序中,外循環(huán)迭代5次。在外循環(huán)的每次迭代中,內(nèi)循環(huán)每次迭代2次。
嵌套的while循環(huán)包含一個 while 循環(huán),作為另一個 while 循環(huán)中的語句??梢愿鶕?jù)需要設(shè)置任意數(shù)量的嵌套 while 循環(huán)。
var i = 1 while i <= 5 { print("外循環(huán)迭代 ", i) var j = 1 while j <= 2 { print("內(nèi)循環(huán)迭代 ", j) print("i = \(i); j = \(j)") j += 1 } i += 1 }
該程序的輸出與上述程序相同。
嵌套的repeat while循環(huán) 包含一個 repeat-while 循環(huán)作為另一個 repeat-while 循環(huán)中的語句??梢愿鶕?jù)需要設(shè)置任意數(shù)量的嵌套 while 循環(huán)。
var i = 1 repeat { print("外循環(huán)迭代 ", i) var j = 1 repeat { print("內(nèi)循環(huán)迭代 ", j) print("i = \(i); j = \(j)") j += 1 } while (j <= 2) i += 1 } while (i <= 5)
該程序的輸出與上述程序相同。
可以不需要有相同類型的嵌套循環(huán)。也可以通過將一種類型的循環(huán)放入其他類型的循環(huán)中來創(chuàng)建嵌套循環(huán)的變體。
下面的程序包含不同類型的嵌套循環(huán)(while和for-in循環(huán))。
var i = 1 while i <= 5 { print("外循環(huán)迭代 ", i) for j in 1...2 { print("內(nèi)循環(huán)迭代 ", j) print("i = \(i); j = \(j)") } i += 1 }
該程序的輸出與上述程序相同。
嵌套循環(huán)通常用于在編程中創(chuàng)建模式。下面的程序顯示了如何使用嵌套循環(huán)創(chuàng)建簡單的圖案。
let rows = 5 for i in 1...rows { for j in 1...i { print("\(j) ", terminator: "") } print("") }
運行該程序時,輸出為:
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5