English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 문서에서는 Swift 프로그래밍에서 while과 repeat...while 반복을 생성하는 방법을 배웁니다.
이전 기사에서 우리는 알게 되었습니다for-in 반복정해진 횟수만큼 실행되는 일련의 작업을 실행합니다. 이 문서에서는 반복 횟수가 불명확할 때 while과 repeat..while을 for 반복으로 사용하는 방법을 배웁니다.-in 반복의 대체 방법
while 반복은 조건이 false가 되까지 일련의 문장을 실행합니다. 처음 반복에서 반복 횟수가 불명확할 때 이와 같은 반복을 사용하는 것이 좋습니다. Swift는 두 가지 while 반복을 제공합니다:
이 반복문은 반복의 시작마다 조건을 평가합니다.
while 반복의 문법은 다음과 같습니다:
while (TestExpression) { // 문장 }
TestExpression은 부울 표현식입니다.
TestExpression이 true로 계산된다면
while 반복 내의 문장이 실행됩니다.
그리고 TestExpression이 다시 계산됩니다.
이 과정을 계속 진행하여 TestExpression이 false로 계산될 때까지 합니다. TestExpression이 false로 계산된다면 while 반복이 종료됩니다.
var currentLevel: Int = 0, finalLevel: Int = 5 let gameCompleted = true while (currentLevel <= finalLevel) { //게임을 플레이하세요 if (gameCompleted) { print("关卡 \(currentLevel)을 통과했습니다") currentLevel += 1 } } print("while 반복문 외에")
이 프로그램을 실행할 때, 출력은 다음과 같습니다:
关卡 0을 통과했습니다 关卡를 통과했습니다 1 关卡를 통과했습니다 2 关卡를 통과했습니다 3 关卡를 통과했습니다 4 关卡를 통과했습니다 5 while 반복문 외에
위 프로그램에서 변수 currentLevel과 finalLevel가 0으로 초기화되고, 상수 gameCompleted가 true로 초기화됩니다.
while 반복문의 각 반복에서, 그는 currentLevel <= finalLevel 조건을 확인합니다. 조건이 true를 반환하면 while 반복 내의 문장을 계속 수행하며, 그렇지 않으면 반복을 종료합니다.
반복 | 조건(currentLevel <= finalLevel) | 출력 |
---|---|---|
1 | 0 <= 5 (true) | 关卡 0을 통과했습니다 |
2 | 1 <= 5 (true) | 关卡를 통과했습니다 1 |
3 | 2 <= 5 (true) | 关卡를 통과했습니다 2 |
4 | 3 <= 5 (true) | 关卡를 통과했습니다 3 |
5 | 4 <= 5 (true) | 关卡를 통과했습니다 4 |
6 | 5 <= 5 (true) | 关卡를 통과했습니다 5 |
7 | 6 <= 5 (false) | while 반복문 외에 |
이 반복문은 매번 반복이 끝날 때마다 조건을 평가합니다. repeat ... while 반복문은 while 반복문과 유사하지만 중요한 차이점이 있습니다. repeat ... while 반복문 주체를 실행한 후에 testExpression 계산 테스트 표현식을 확인합니다.
repeat..while 루프의 문법은 다음과 같습니다:
repeat { // 문장 ... }
repeat ... while 루프의 본문이 한 번 실행됩니다(테스트 표현식을 확인하기 전에). 이렇게 하면 테스트 표현식이 확인됩니다.
testExpression이 true로 계산되면, 루프 내의 문장을 실행한 후에 다시 testExpression을 계산합니다. testExpression이 false로 계산될 때까지 계속됩니다.
testExpression이 false일 때, repeat..while 루프가 종료됩니다.
var currentLevel: Int = 0, finalLevel: Int = 5 let gameCompleted = true repeat { //게임을 플레이하세요 if (gameCompleted) { print("关卡 \(currentLevel)을 통과했습니다") currentLevel += 1 } } print("repeat while루프 밖에")
이 프로그램을 실행할 때, 출력은 다음과 같습니다:
关卡 0을 통과했습니다 关卡를 통과했습니다 1 关卡를 통과했습니다 2 关卡를 통과했습니다 3 关卡를 통과했습니다 4 关卡를 통과했습니다 5 repeat while루프 밖에
위의 예제에서는 루프 내의 문장이 처음으로 실행됩니다. 다음 반복에서는 currentLevel <= finalLevel 조건을 확인합니다.
조건이 true를 반환하면 while루프 내의 문장을 실행하며, 그렇지 않으면 루프가 종료됩니다.
반복 | 조건 (currentLevel <= finalLevel) | 출력 |
---|---|---|
1 | 0 <= 5 (true) | 关卡 0을 통과했습니다 |
2 | 1 <= 5 (true) | 关卡를 통과했습니다 1 |
3 | 2 <= 5 (true) | 关卡를 통과했습니다 2 |
4 | 3 <= 5 (true) | 关卡를 통과했습니다 3 |
5 | 4 <= 5 (true) | 关卡를 통과했습니다 4 |
6 | 5 <= 5 (true) | 关卡를 통과했습니다 5 |
7 | 6 <= 5 (false) | repeat while루프 밖에 |
尽管repeat와repeat while루프가 동일한 실행 단계를 가지고 있지만, repeat... while루프에서는 currentLevel <= finalLevel 조건이 그 안의 문장이 실행된 후에야 계산됩니다.
하지만 중에서 currentLevel <= finalLevel 조건은 실행하기 전에 먼저 확인됩니다.
테스트 표현식이 결코 false로 계산되지 않으면, while의 본문과 repeat..while 루프가 무한히 실행됩니다.
while (true) { print("Hello, World!") }
repeat { print("Hello, World!") } while (true)
이 프로그램을 실행할 때, 출력은 다음과 같습니다:
Hello, World! Hello, World! . . .
프로그램을 실행할 때, 두 개의 루프가 무한히 실행되어 print("Hello, World!") 문이 무한히 출력됩니다. 따라서, 컨트롤台中, 연속적인 출력을 볼 수 있습니다.