TIL: 제어 전송문 정리

Royce·2025년 3월 14일

Swift 문법

목록 보기
13/63

제어 전송문(Control Transfer Statement)

  • 제어 전송문(Control Transfer Statement)은 코드의 실행 흐름을 변경하는 문장이다
  • 즉, 프로그램이 특정 조건에서 어떤 코드 블록을 건너뛰거나 종료할 수 있도록 제어할 수 있다
  • Swift에서 사용되는 주요 제어 전송문은 다음과 같다
제어 전송문실행
return현재 실행 중인 함수에서 빠져나가고 값을 반환
break현재 실행 중인 반복문이나 switch 문을 즉시 종료
continue현재 반복문의 나머지 코드를 건너뛰고 다음 반복을 실행
fallthrouthswitch 문에서 다음 case 로 계속 실행
throw오류(Error)를 발생시켜 현재 코드의 실행을 중단

return - 함수나 루프에서 빠져나오기

  • return 문은 현재 실행 중인 함수에서 즉시 빠져나가면서 값을 반환한다

1. 값을 반환하는 return

func add(a: Int, b: Int) -> Int {
    return a + b  // 함수 실행 종료 후 결과 반환
}

let result = add(a: 3, b: 5)
print(result)  // 8
  • return a + b -> add 함수가 실행되면 return 을 만나고 값을 반환하면서 종료

2. 반환값이 없는 return (Void 함수)

func sayHello() {
    print("Hello, Swift!")
    return  // 생략 가능 (Void 함수에서는 `return`을 안 써도 자동 종료됨)
}

sayHello()
  • Void 함수에서는 return 을 명시적으로 쓰지 않아도 자동으로 함수가 종료된다

3. return 을 사용하여 특정 조건에서 조기 종료

func checkNumber(_ number: Int) {
    if number < 0 {
        print("음수는 처리하지 않습니다.")
        return  // 함수 즉시 종료
    }
    
    print("입력한 숫자는 \(number)입니다.")
}

checkNumber(-5)  // 음수는 처리하지 않습니다.
checkNumber(10)  // 입력한 숫자는 10입니다.
  • if number < 0 이면 return 이 실행되어 함수가 즉시 종료된다

break - 루프 또는 switch 종료하기

  • break 문은 현재 실행 중인 루프(for, while)나 switch 문을 즉시 종료할 때 사용한다

1. break 를 사용하여 반복문 종료

for i in 1...10 {
    if i == 5 {
        print("5를 만나서 반복문 종료!")
        break
    }
    print(i)
}


// 실행 결과
1
2
3
4
5를 만나서 반복문 종료!
  • i == 5 이면 break 실행 -> 반복문이 즉시 종료된다

2. break 를 사용하여 switch 문 종료

let grade = "B"

switch grade {
case "A":
    print("훌륭합니다!")
case "B":
    print("좋아요!")
    break  // 여기서 switch 문 종료
case "C":
    print("노력이 필요합니다.")
default:
    print("잘못된 입력입니다.")
}


// 실행 결과
좋아요!
  • "B" 에 해당하는 case 를 실행한 후 break 에 의해 switch 문이 종료된다

continue - 현재 반복을 건너뛰고 다음 반복 실행

  • continue 문은 현재 실행 중인 반복문의 나머지 코드를 건너뛰고, 다음 반복을 실행할 때 사용한다

1. continue를 사용하여 짝수만 출력

for i in 1...10 {
    if i % 2 != 0 {
        continue  // 홀수일 때 실행을 건너뛰고 다음 반복으로 이동
    }
    print(i)
}


// 실행 결과
2
4
6
8
10
  • i % 2 != 0 (홀수)일 경우 continue 실행 -> print(i) 를 건너뛰고 다음 반복으로 이동

2. 특정 숫자만 건너뛰기

for number in 1...5 {
    if number == 3 {
        print("3은 건너뜁니다!")
        continue
    }
    print("number: \(number)")
}


// 실행 결과
number: 1
number: 2
3은 건너뜁니다!
number: 4
number: 5
  • number == 3 일 때 continue 가 실행되어 print("number: \(number)") 가 실행되지 않는다

fallthrough - switch 문에서 다음 case 실행

  • fallthrough 문은 switch 문에서 현재 case 가 끝난 후에도 다음 case 로 계속 실행되도록 하는 문장이다

1. fallthrough 를 사용하여 다음 case 실행

let number = 2

switch number {
case 1:
    print("1입니다.")
case 2:
    print("2입니다.")
    fallthrough  // 다음 case로 이동
case 3:
    print("3입니다.")
default:
    print("다른 숫자입니다.")
}


// 실행 결과
2입니다.
3입니다.
  • case 2 에서 fallthrough 가 실행되어 case 3 까지 실행된다

⚠️ 주의: fallthrough 는 조건을 확인하지 않고 무조건 다음 case 실행


throw - 오류(Error) 발생시키키

  • Swift에서는 throw 문을 사용하여 오류를 발생시키고 실행을 중단할 수 있다

1. throw 를 사용하여 오류 발생

enum MathError: Error {
    case divideByZero
}

func divide(_ a: Int, by b: Int) throws -> Int {
    if b == 0 {
        throw MathError.divideByZero  // 오류 발생
    }
    return a / b
}

// 오류 처리
do {
    let result = try divide(10, by: 0)
    print(result)
} catch {
    print("에러 발생: \(error)")
}


// 실행 결과
에러 발생: divideByZero
  • b == 0 이면 throw MathError.divideByZero 실행 -> 오류 발생
  • do-catch 구문을 사용하여 오류를 안전하게 처리
profile
iOS 개발자 지망생

0개의 댓글