이전 포스팅글에 이어서..
제어흐름(Control Flow)의 유형중 하나인,
반복문에 대해 살펴보고자 합니다.
반복 제어흐름 (Looping Control)
지정된 조건에 만족할 때 까지 계속해서 반복적으로 수행하는 구문
반복 제어흐름은
일련의 조건을 지정하고, 만족할 때까지
반복적으로 수행하고 종료되는 구문입니다.
반복문은 크게 2가지 유형의 구문으로 나뉘게 됩니다.
- 반복의 횟수를 알고 있을때 (for-in loops)
- 반복의 횟수를 알지 못하므로, 조건(Boolean)이 필요할 때 (while loops)
위 두개 유형은 동일한 작동방식인 반복구문(Loops)의 특성을 가지고 있으나,
원하는 값을 보다 효율적으로 도출하기 위한 개발자의 선택이 필요합니다.
for - in 반복문
특정 상수나, 컬렉션이 숫자 범위 혹은 초기화 값에 따라 일련의 항목을 반복
for-in 반복문이란?
- for-in 반복문은 특정 범위나 컬렉션(배열, 딕셔너리 등)을 반복해서 나타내는 구문입니다.
- for-in 반복문은 특정 상수나 컬렉션이 범위에 포함되는 일련의 항목을 반복하는데 사용됩니다.
(컬렉션은 다음 포스팅에서 다루도록 하겠습니다)
- for-in 반복문은 특정 상수나 컬렉션이 범위에 포함되는 일련의 항목을 반복하는데 사용됩니다.
- 기본형태는 다음과 같습니다.
- 상수명은 반복문이 실행되는 범위 혹은 컬렉션의 값을 담게 될 임의 상수입니다.
- 또한, 해당 상수는 for-in 구문의 Scope를 벗어나면 사용할 수 없습니다.
- 구문 안에서 상수명이 필요하지 않는다면, 밑줄문자 (_)로 대체할 수 있습니다.
- 상수명은 반복문이 실행되는 범위 혹은 컬렉션의 값을 담게 될 임의 상수입니다.
for 상수명 in (범위 혹은 컬렉션) {
// 실행구문
}
더보기
// 범위 연산자를 활용한 for-in 구문
// 1. 'i'라는 임의 상수를 작성하고,
// 범위는 1부터 5까지 설정합니다.
for i in 1...5 {
print(i)
}
// 2. 상수 i는 print 구문내 5차례에 걸쳐 출력됩니다.
/*
1
2
3
4
5
*/
더보기
// 1. 임의변수를 지정합니다.
var count:int = 0
// 2. 이후, 범위를 참고하여 2씩 증가하는 반복문을 만들고자 한다면?
// 상수가 이미 for 구문 밖에 선언되었고, 이를 참조하여 활용하므로 언더바 _ 로 표시합니다.
for _ in 1...3 {
count += 2 // count += 2 (산술연산)
print("\(count)")
}
// 3. 세 차례에 걸쳐 출력됩니다.
/*
2
4
6
*/
While 반복문
별도의 조건을 설정하고, 만족할 때 까지 일련의 항목을 반복
for 반복문 vs While 반복문
- for-in 반복문은..
- 프로그램 내에서 몇번 반복해야 할지 알고 있을 경우에 유용합니다.
- 반대로, while 반복문은..
- 반복횟수는 알수 없으나, 특정 조건이 만족할 때 까지 반복할때 사용합니다.
- 즉, 조건 자체가 거짓(false)이 될 때까지 반복한 후, 종료됩니다.
- 여기서의 조건이라 함은, 주로 산술연산입니다.
While 반복문이란?
- 조건을 확인한 후 ➟ 반복문을 실행하는 구문입니다.
- 조건 - 실행 - 조건 - 실행 ... - 거짓 - break
- 기본형태는 다음과 같습니다.
while 조건문 {
// 실행구문
}
더보기
// 1. 범위는 모르지만, 조건이 있는 경우 while 반복문을 사용합니다.
// 임의의 변수가 5보다 작은지 평가하고, 그렇지 않으면 1씩 증가하는 while 반복문을 만드려면..
var myCount:Int = 0
while myCount < 5 {
myCount += 1
print("\(myCount)")
}
// 2. myCount는 0에서 1씩 증가하지만, 조건(5보다 작다!)에 부합할 때 까지 반복합니다.
// 만약, 5 이상이 된다면(false)
// { } 안의 코드를 건너뛰고 반복문이 종료됩니다.
/*
1
2
3
4
5
*/
repeat - while 반복문
- while 반복문을 다시 살펴보자면..
- 반복문 안의 코드를 실행하기 이전에 ‘표현식(연산)’ 조건을 먼저 평가합니다.
- 반대로, repeat- while 반복문은?
- 조건보다 실행을 먼저 선행합니다.
- repeat 키워드 뒤에 실행문을 작성하고, while 뒤에 조건문을 작성합니다.
(그렇게 되면, repeat 구문이 먼저 실행되기 때문에 적어도 한번 이상은 실행됩니다)
- 기본형태는 다음과 같습니다.
repeat {
// 실행구문
} while 조건문
더보기
// 1. myCount 상수는 0으로 초기화되어 있으며..
var myCount:Int = 0
// 2. repeat 뒤 실행문을 통해 +2 반복해서 증가하나,
// while 뒤 표현식(연산)을 통해 5 미만까지 반복하는 조건을 설정합니다.
repeat {
myCount += 2
} while myCount < 5
print("\(myCount)")
// 3. 그렇다면, myCount는? '6'이 출력됩니다.
// 이유는 즉, myCount가 4가 되었을 때, 조건문을 거치는 것이 아닌 실행문을 거치기 때문입니다.
'iOS > Swift' 카테고리의 다른 글
[iOS/Swift] Collection Type (Set, Dictionary) (0) | 2022.11.05 |
---|---|
[iOS/Swift] Collection Type (Array) (0) | 2022.11.05 |
[iOS/Swift] 조건부 흐름제어, Condition Flow Control (0) | 2022.11.04 |
[iOS/Swift] 표현식(Expressions)과 연산자(Operators) (0) | 2022.11.02 |
[iOS/Swift] Optional, Unwrapped! (0) | 2022.10.31 |
댓글