본문 바로가기
iOS/Swift

[iOS/Swift] 반복 제어흐름, Looping Control

by iosdevlime 2022. 11. 4.

이전 포스팅글에 이어서..

 

제어흐름(Control Flow)의 유형중 하나인,

반복문에 대해 살펴보고자 합니다.

 

 

 

 

반복 제어흐름 (Looping Control)

지정된 조건에 만족할 때 까지 계속해서 반복적으로 수행하는 구문

 

반복 제어흐름은

일련의 조건을 지정하고, 만족할 때까지 

반복적으로 수행하고 종료되는 구문입니다. 

 

 

반복문은 크게 2가지 유형의 구문으로 나뉘게 됩니다.

  • 반복의 횟수를 알고 있을때 (for-in loops)
  • 반복의 횟수를 알지 못하므로, 조건(Boolean)이 필요할 때 (while loops)

 

위 두개 유형은 동일한 작동방식 반복구문(Loops)의 특성을 가지고 있으나,

원하는 값을 보다 효율적으로 도출하기 위한 개발자의 선택이 필요합니다.


 

 


 

 

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가 되었을 때, 조건문을 거치는 것이 아닌 실행문을 거치기 때문입니다.

 

 

 

 

 

댓글