본문 바로가기
🍎 Swift/iOS 문법 노트

[🍎 Swift 문법] 제어문 전환 명령어

by 솔비님 2024. 6. 27.

 

제어문 전환 명령어란?

제어문 전환 명령어는 프로그래밍에서 코드의 흐름을 변경하거나 특정 조건에서 빠져나갈 수 있게 해주는 명령어

코드의 흐름을 제어하여 프로그램이 원하는 대로 동작하도록 하는 데 유용하게 사용된다

스위프트에서 주요 제어문 전환 명령어는 break, continue, return, fallthrough, throw가 있다

 

break 반복문이나 switch 문을 즉시 종료한다
continue 현재 반복 주기를 건너뛰고 다음 반복으로 넘어간다
return 함수를 종료하고 값을 반환한다
fallthrough switch문에서 다음 case 블록으로 넘어간다
throw 오류를 던져 예외 처리를 수행한다

 


01. break 

break는 반복문이나 switch 문을 즉시 종료한다

이 코드는 1부터 4까지 출력하고, i가 5일 때 반복문을 종료한다

for i in 1...10 {
    if i == 5 {
        break // i가 5일 때 반복문을 종료합니다.
    }
    print(i)
}

 

02. continue

continue는 현재 반복 주기를 건너뛰고 다음 반복으로 넘어간다

이 코드는 홀수만 출력하며 짝수일 때는 continue가 실행되어 다음 반복으로 넘어간다

for i in 1...10 {
    if i % 2 == 0 {
        continue // i가 짝수일 때 다음 반복으로 넘어갑니다.
    }
    print(i)
}

 

 

03. return

return은 함수를 즉시 종료하고 호출한 곳으로 값을 반환한다 (반환 값이 없을 수도 있음)

이 함수는 name이 nil일 때 "Name is missing."을 출력하고 함수를 종료한다

func greet(name: String?) {
    guard let name = name else {
        print("Name is missing.")
        return // name이 nil일 때 함수를 종료합니다.
    }
    print("Hello, \(name)!")
}

greet(name: "John")  // "Hello, John!"
greet(name: nil)     // "Name is missing."

 

 

04. fallthrough

switch문에서 다음 case 블록으로 넘어가게 한다

스위프트에서 많이 사용되지 않지만, 특정 상황에서 유용할 수 있다

 

이 코드는 "Two"와 "Three"를 출력하며 fallthrough 때문에 case 3도 실행된다

let number = 2

switch number {
case 1:
    print("One")
case 2:
    print("Two")
    fallthrough // 다음 case 블록으로 넘어갑니다.
case 3:
    print("Three")
default:
    print("Default")
}

 

 

05. throw

throw는 오류를 던져서 예외 처리를 수행하게 하며, throws가 선언된 함수 내에서 사용된다

이 예제는 비밀번호가 짧거나 단순할 때 오류를 던지고, 그 오류를 do-catch 구문으로 처리한다

enum PasswordError: Error {
    case tooShort
    case tooSimple
}

func validatePassword(_ password: String) throws {
    if password.count < 8 {
        throw PasswordError.tooShort // 비밀번호가 너무 짧을 때 오류를 던집니다.
    }
    if password == "12345678" {
        throw PasswordError.tooSimple // 비밀번호가 너무 단순할 때 오류를 던집니다.
    }
}

do {
    try validatePassword("1234")
} catch PasswordError.tooShort {
    print("Password is too short.")
} catch PasswordError.tooSimple {
    print("Password is too simple.")
} catch {
    print("Unknown error.")
}