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

[스위프트] 제어 전달문 (break, continue, return 특징 및 차이)

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

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

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

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

 

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

일반적으로는 다음의 세가지를 일컫는다.


• 반복문(Loop Statements)
• 조건문(Conditional Statements)
• 제어 전달문(Control Transfer Statements)

 

이중 제어 전달문에 대해 알아보자.

제어 전달문

혼자서는 못쓰고 다른 구문들과 함께 쓰며 흐름을 바꿀 때 사용되는 구문이다.
아래를 보면 바로 어떤건지, 무슨말인지 이해가 될 것이다.
• break
• continue
• fallthrough
• return
이 네가지가 제어전달문이다.

break

break가 들어간, 실행 되고있는 반복문을 탈출할 때 쓴다.

var a = 1

while true {
    if a == 1 {
        break
    }
}//while문을 탈출한다.

return

각종 구문 블럭에서 실행되면 해당 블럭을 종료시키는건 break와 같다.
하지만 return의 경우에는 함수를 탈출할 때 쓴다.
이때 탈출하면서 값을 반환한다.

//예시 다음과 같은 for문이 함수 안에 있다고 가정하자.
for i in 1...5 {
    if i == 4 {
        return 0
    }
}// i가 4가 되면 0을 반환하며 for문이 종료되며 해당 함수가 아예 종료가 되고 0을 반환한다.

continue

continue다음에 존재하는 구문들은 전부 스킵하고 넘어간다. break와는 다르게 탈출하진 않는다.

for i in 1...5 {

    if (i == 1) {
        continue

    } else if (i == 4){
        break
    }
    print("여기")
}
/*
*    실행 결과
*    여기
*    여기
*
* continue 때문에 맨처음에는 그냥 넘어가고
* 두번째와 세번째만 print가 실행된다.
*/

fallthrough

조건문의 switch에서 나왔기 때문에 간단하게 설명하자면
다른 언어의 switch에서는 암묵적으로 각 case문을 내용없이 연달아 쓰면 연속적으로 실행되나
스위프트는 명시적으로 fallthrough를 써줘야 연달아 실행된다.

var value = 3
switch value {
    case 3:
        fallthrough
    case 2:
        fallthrough
    case 1:
        fallthrough
    default :
        print("aaa")

}
/*
*    실행 결과
*    aaa
*
* fallthrough 때문에 연달아 넘어가서 default까지 간다.
*/

 

 

스위프트 문법 - 제어 전달문, swift