일반적으로 언어가 작성되고 실행되는 순서 및 방향들(흐름)을 제어하는 것을
흐름 제어 구문, 흐름 제어문, 제어 흐름 여러가지로 부르는데,
필자는 흐름 제어 구문으로 칭하겠다.
흐름 제어 구문의 종류에는 여러가지가 있는데
일반적으로는 다음의 세가지를 가장 많이 얘기한다.
• 반복문(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문과 결과가 같다.
*/
스위프트 문법 - 흐름제어 반복문
'공부 > Apple' 카테고리의 다른 글
[스위프트] 제어 전달문 (break, continue, return 특징 및 차이) (0) | 2023.07.03 |
---|---|
[스위프트] 조건문(if, guard, switch) 종류와 사용법 (0) | 2023.07.03 |
[스위프트] 비트 연산자 종류와 사용법 (0) | 2023.07.02 |
[스위프트] 연산자 종류와 사용법 (0) | 2023.07.02 |
[스위프트] 문자열 템플릿, 쿼우팅 (0) | 2023.07.01 |