Swift | 반복문의 제어 이동(Loof control transfer)

안녕하세용 제가 블로그 자주쓰는게 신기하죠? 저도 그래요 😣
이번 글은 반복문 제어 이동에 대해 써보려고 합니다.


반복문의 제어 이동?

말로만 들으면 엄청 거창해보이지만, 반복문에서 특정 조건이 나타났을 때
반복문을 계속 진행할 것인지 끝낼 것인지를 핸들링할 수 있는 것이 제어 이동입니다.

let numbers: [Int]?

for i in numbers.enumerated() {
    if i == 3 {
        // 😈 더이상 코드를 읽지않고 다음 순서로 바로 넘기기
    }

    if i == 2 {
        // 👋🏻반복문을 끝내고 싶다.
    }
}

위의 코드의 아래의 두 가지를 어떻게 실행하기 위해서 필요한게제 제어 이동(Control Transfer)입니다.

– 😈 더이상 코드를 읽지않고 다음 순서로 바로 넘기기
– 👋🏻반복문을 끝내고 싶다.

break, continue, fallthrough, return 의 네 가지가 있습니다.
물론 모든 반복문에서 사용할 수 있는건 아닙니다.

어떻게 다른지 알아보러 가시죠 ~ 고고싱 ~~~~~ !

break

  • 실행하고 있는 반복문 자체를 끝냅니다.
let numbers: [Int] = [1, 2, 3, 4]

for i in numbers.enumerated() {
    if i.element == 3 {
        break // 💥
    }

    print(i.element)
}

// 👇 print 결과 👇
// 1 2

continue

  • 다음 index로 넘깁니다.
let numbers: [Int] = [1, 2, 3, 4]

for i in numbers.enumerated() {
    if i.element == 3 {
        break // 💥
    }

    print(i.element)
}

// 👇 print 결과 👇
// 1 2 4

fallthrough (switch문)

  • Switch문에서만 실행됩니다.
enum Animal {
    case pengsoo
    case lion
    case cat
    case dog
}

func printAnimalSound(type: Animal) {
    switch type {
    case .pengsoo:
        print("펭하")
    case .lion:
        print("으르렁으르렁")
    case .cat:
        // 😈 switch문을 끝내지 않고, 다음 case로 넘깁니다. 
        fallthrough
    case .dog:
        print("월월!")
    }
}

return (함수 내에서)

  • 반복문과 함께 실행된 함수도 종료시킵니다.
let numbers: [Int] = [1, 2, 3, 4]

func selectNumberLoof(_ numbers: [Int]) -> Int {
    for i in numbers.enumerated() {
        if i.element == 3 {
            // 😈 더이상 코드를 읽지않고 다음 순서로 바로 넘기기
            return i.element
        }

        print(i.element)
    }
}

// 👇 print 결과 👇
// 1 2

// 👇 return 값 👇
// 3

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중