English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 글에서, 중첩 루프와 그 작동 방식을 예제를 통해 이해하실 수 있습니다.
한 루프가 다른 루프의 본문 내에 존재하면 중첩 루프라고 합니다. 이는 중첩된 for-in 루프 예제.
for i in 1...5 { //외 루프 문장 for j in 1...2 { //내 루프 문장 } //외 루프 문장 }
여기서, for j in 1...2 루프는 내 루프로 불리며, for i in 1...5위쪽의 본문 내부에서 외 루프로 불립니다.
중첩 루프는 같은 유형의 루프를 포함하지 않을 수 있습니다. 예를 들어, while 루프를 for 루프의 본문 안에 넣을 수 있지만, 여전히 중첩 루프입니다.
중첩된for-in 루프다른 for-in 루프에 포함된 for-in 루프를 문장으로 사용할 수 있습니다. 필요에 따라 무한히 많은 중첩 for 루프를 설정할 수 있습니다.-in 루프.
for i in 1...5 { print("외부 루프 반복", i) for j in 1...2 { print("내부 루프 반복", j) print("i = \(i); j = \(j)") } }
이 프로그램을 실행할 때, 출력은 다음과 같습니다:
외 루프 반복 1 내 루프 반복 1 i = 1; j = 1 내 루프 반복 2 i = 1; j = 2 외 루프 반복 2 내 루프 반복 1 i = 2; j = 1 내 루프 반복 2 i = 2; j = 2 외 루프 반복 3 내 루프 반복 1 i = 3; j = 1 내 루프 반복 2 i = 3; j = 2 외 루프 반복 4 내 루프 반복 1 i = 4; j = 1 내 루프 반복 2 i = 4; j = 2 외 루프 반복 5 내 루프 반복 1 i = 5; j = 1 내 루프 반복 2 i = 5; j = 2
위 프로그램에서, 외 루프 반복5번. 외 루프의 각 반복에서, 내 루프의 각 반복2번.
중첩된while 루프다른 while 루프 내의 문장을 포함하고 있습니다. 필요에 따라 무한히 많은 중첩 while 루프를 설정할 수 있습니다.
var i = 1 while i <= 5 { print("외부 루프 반복", i) var j = 1 while j <= 2 { print("내부 루프 반복", j) print("i = \(i); j = \(j)") j += 1 } i += 1 }
이 프로그램의 출력은 위 프로그램과 동일합니다.
중첩된repeat while 루프 내에 있는 repeat-while 루프가 다른 repeat-while 루프 내의 문장. 필요에 따라 무한히 많은 중첩 while 루프를 설정할 수 있습니다.
var i = 1 repeat { print("외부 루프 반복", i) var j = 1 repeat { print("내부 루프 반복", j) print("i = \(i); j = \(j)") j += 1 } while (j <= 2) i += 1 } while (i <= 5)
이 프로그램의 출력은 위 프로그램과 동일합니다.
같은 유형의 중첩 루프가 필요하지 않을 수 있습니다. 또한, 한 유형의 루프를 다른 유형의 루프 안에 넣어 중첩 루프의 변형을 만들 수 있습니다.
아래 프로그램은 다양한 유형의 내장 루프(while과 for)를 포함하고 있습니다-인덱스 루프)
var i = 1 while i <= 5 { print("외부 루프 반복", i) for j in 1...2 { print("내부 루프 반복", j) print("i = \(i); j = \(j)") } i += 1 }
이 프로그램의 출력은 위 프로그램과 동일합니다.
내장 루프는 프로그래밍에서 패턴을 생성하는 데 일반적으로 사용됩니다. 아래 프로그램은 내장 루프를 사용하여 간단한 패턴을 생성하는 방법을 보여줍니다.
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