본문 바로가기
공부/스위프트

[스위프트] 반복문(for ~ in, while, repeat ~ while) 종류와 사용법

by 초코팅촉 2023. 7. 2.
728x90

일반적으로 언어가 작성되고 실행되는 순서 및 방향들(흐름)을 제어하는 것을

흐름 제어 구문, 흐름 제어문, 제어 흐름 여러가지로 부르는데,

필자는 흐름 제어 구문으로 칭하겠다.

 

흐름 제어 구문의 종류에는 여러가지가 있는데

일반적으로는 다음의 세가지를 가장 많이 얘기한다.
• 반복문(Loop Statements)
• 조건문(Conditional Statements)
• 제어 전달문(Control Transfer Statements)

 

이중 반복문에 대해 알아보자.

반복문(Loop Statements)

for

• 실행 횟수를 정확히 알때
• 특정 범위 안에서 반복해야 할때
위 두가지 경우에 for문을 사용한다.

//기본적인 문법은 아래와 같다.
for 루프 변수 in 순회 대상 {
    //실행될 내용
}

//예시
for row in 1...5 {
    print(row)
}
/*
*    실행 결과
*    1
*    2
*    3
*    4
*    5
*/

루프 변수안에 들어갈, 순회 대상으로 쓸 수 있는 자료형은 다음과 같다.
• 배열(Array)
• 딕셔너리(Dictionary)
• 집합(Set)
• 범위 데이터
• 문자열
루프 변수가 굳이 필요없다면 아래처럼 _(언더바)로 대체가능하다.

for _ in 1...5 {
    //실행 내용
}
//5번 반복한다.

for문을 중첩하는 것도 가능하다.(하지만 이땐 시간복잡도가 얼마나 걸릴지 생각해봐야 한다.)

while

• 실행 횟수가 명확하지 않을 때
• 실행 횟수를 기반으로 할 수 없을 때
• 직접 실행하기 전엔 얼마나 반복될지 모를 때
이 세가지 경우에 while문을 사용한다.

while 조건식 {
    //실행 내용
}

//예시
var i = 0
/*
*for문에서는 조건식에서 바로 초기화를 할 수 있었지만
* while문에선 앞서 초기화가 돼있어야 한다.
*/

while i < 3 {
    print("Hello")
    i+=1
}
/*
*    실행 결과
*    Hello
*    Hello
*    Hello
*/

조건식이 참이라면 계속 실행된다.
따라서 for문처럼 조건식에 변수를 넣어 변수에 대한 조건이 맞지 않으면 끝내거나
while문안에서 자체적으로 끝나는 경우를 만들어야 한다.

repeat ~ while

다른 언어에서의 do ~ while문과 같다.
위의 while문을 사용해야하는 경우를 만족하면서 최소 한번은 실행되어야 할 때 사용한다.

repeat {
    //실행 내용
}
while 조건식

//예시
var i = 0

repeat {
    print("Hello")
    i+=1
}
while i < 3
/*
*    실행 결과
*    Hello
*    Hello
*    Hello
*
* Hello가 세번만 출력된 이유는
* 맨처음에 Hello를 한번 출력하면서 i에 1을 더한다.
* 따라서 위의 while문과 결과가 같다.
*/

 

 

스위프트 문법 - 흐름제어 반복문