iOS Swift - Break/Continue

longlivedrgn·2022년 7월 30일
0

swift문법

목록 보기
5/36
post-thumbnail

Break

자신과 가장 인접한 문장을 중지한다.

switch문에서의 break

// switch 문에서의 break
let num = 1

switch num {
// num = 1 이기에 아래 케이스에 해당된다.
case 1...10:
    print("begin block")
    
    // num = 1 이기에 아래의 If 문은 true이다.
    if num % 2 != 0 {
        // switch 문 자체를 끝낸다
        break
    }
    
    print("end block")
default:
    break
}

print("done")

begin block
done

for문에서의 break

// for 반복문
for index in 1...10 {
    print(index)
    
    if index > 1 {
        break
    }
}

1
2

중첩 for문에서의 break

// 중첩 for 반복문
for i in 1...10 {
    print("OUTER LOOP",i)
    
    for j in 1...10 {
        print("inner loop", j)
        
        if j > 1 {
            // 가장 인접한 for j in 1...10 가 종료가 된다.
            break
        }
    }
}

OUTER LOOP 1
inner loop 1
inner loop 2
OUTER LOOP 2
inner loop 1
inner loop 2
OUTER LOOP 3
inner loop 1
inner loop 2
...

  • 위 코드의 경우, break가 실행이 되면 가장 인접한 문장인 for j in 1...10가 종료가 되지만, 가장 밖의 for i in 1...10의 경우는 종료가 되지 않는다.

Continue

- 반복문에서만 사용이 된다.
- 문장을 중지시키지는 않고, continue 이하의 구문을 무시한 채 바로 그냥 다음 반복으로 넘어간다.

for index in 1...10 {
    
    if index % 2 == 0 {
        continue
    }
    print(index)
}

1
3
5
7
9

for i in 1...10 {
    print("OUTER LOOP", i)
    
    for j in 1...10 {
        if j % 2 == 0 {
            continue
        }
        
        print("inner loop", j)
    }
}

OUTER LOOP 1
inner loop 1
inner loop 3
inner loop 5
inner loop 7
inner loop 9
OUTER LOOP 2
inner loop 1
inner loop 3
inner loop 5
inner loop 7
inner loop 9
...

Labeled Statements

원하는 문장을 선택하여 종료하고 싶을 때 사용을 한다.

  • 기본 break 문
for i in 1...3 {
    print("OUTER LOOP", i)
    
    for j in 1...3 {
        print("   inner loop", j)
        break
    }
}

OUTER LOOP 1
inner loop 1
OUTER LOOP 2
inner loop 1
OUTER LOOP 3
inner loop 1

  • 만약 아래와 같이 새로운 label(outer)을 생성해준다면?
outer : for i in 1...3 {
    print("OUTER LOOP", i)
    
    for j in 1...3 {
        print("   inner loop", j)
        break outer
    }
}

OUTER LOOP 1
inner loop 1

즉, 원래는 for j in 1...3 문장을 종료시켜야되지만, outer라는 새로운 Label을 생성하여서 outer를 break하였기에, for i in 1...3 이 종료가 된다.

0개의 댓글