TIL: 제어 전송문(Control Transfer Statement)

Royce·2025년 3월 14일

Swift 문법

목록 보기
10/63

제어 전송문

  • 코드의 흐름을 조작할 수 있도록 도와주는 문장이다
  • 그 중 continuebreak는 반복문(for, while, repeat-while)에서 자주 사용된다

break

  • break 문은 현재 실행 중인 반복문이나 switch 문을 즉시 종료하는 역할을 한다
  • 반복문에서 break를 만나면 해당 반복문을 빠져나오고, 남은 반복 횟수는 무시된다

break를 사용하는 이유

  • 특정 조건을 만족하면 반복문을 즉시 종료하고 싶을 때
  • 더 이상 반복할 필요가 없는 경우 불필요한 연산을 방지하기 위해
// 특정 숫자를 찾으면 반복문 종료
for number in 1...10 {
    print(number)
    if number == 5 {
        print("5를 찾았으므로 반복문 종료!")
        break
    }
}



// 실행 결과
1
2
3
4
5
5를 찾았으므로 반복문 종료!
// while문에서 조건 만족 시 종료
var count = 1

while count <= 10 {
    print("count: \(count)")
    if count == 3 {
        print("카운트가 3이 되었으므로 종료!")
        break
    }
    count += 1
}


// 실행 결과
count: 1
count: 2
count: 3
카운트가 3이 되었으므로 종료!

continue

  • 현재 반복을 중단하고 다음 반복을 수행하도록 하는 역할을 한다
  • 즉, 특정 조건에서 실행을 건너뛰고 싶을 때 사용한다

continue를 사용하는 이유

  • 특정 조건에서만 코드를 실행하지 않고 건너뛰고 싶을 때
  • 필요 없는 연산을 피해서 코드 실행 속도를 높이고 싶을 때
// 짝수만 출력
for number in 1...10 {
    if number % 2 != 0 {
        continue // 홀수는 건너뛴다.
    }
    print(number)
}


// 실행 결과
2
4
6
8
10
// 특정 숫자를 건너뛰기
for number in 1...5 {
    if number == 3 {
        print("3은 건너뛴다!")
        continue
    }
    print("number: \(number)")
}


// 실행 결과
number: 1
number: 2
3은 건너뛴다!
number: 4
number: 5

주의할 점 - 중첩 사용 시 적용 범위

  • 가장 인접한 범위의 반복문에 영향을 미친다
for i in 0...3 {
	print("OUTER \(i)")
    for j in 0...3 {
    	if i > 1 {
        	print("  j :", j)
            continue
        }
        print("  INNER \(j)")
    }
}


// 실행 결과
OUTER 0
  INNER 0
  INNER 1
  INNER 2
  INNER 3
OUTER 1
  INNER 0
  INNER 1
  INNER 2
  INNER 3
OUTER 2
  j : 0
  j : 1
  j : 2
  j : 3
OUTER 3
  j : 0
  j : 1
  j : 2
  j : 3
for i in 0...3 {
    print("OUTER \(i)")
    for j in 0...3 {
        if i > 1 {
            print("  j :", j)
            break
        }
        print("  INNER \(j)")
    }
}


// 실행 결과
OUTER 0
  INNER 0
  INNER 1
  INNER 2
  INNER 3
OUTER 1
  INNER 0
  INNER 1
  INNER 2
  INNER 3
OUTER 2
  j : 0
OUTER 3
  j : 0

breakcontinue 차이점 정리

구분breakcontinue
동작 방식반복문을 완전히 종료현재 반복만 건너뛰고 다음 반복으로 진행
사용 예특정 조건에서 반복을 완전히 멈출 때특정 조건을 건너뛰고 다음 반복을 실행할 때
예제5를 찾으면 반복 종료홀수를 건너뛰고 짝수만 출력

레이블 문(Labeled Statements)

  • Swift에서는 중복된 반복문(for, while)이나 switch 문에서 특정한 반복문을 명확하게 지정하여 제어할 수 있도록 레이블(Labeled Statments)을 사용할 수 있다
  • 기본적으로 breakcontitnue 는 가장 가까운 반복문에만 영향을 주지만, 레이블을 사용하면 특정한 반복문을 지정하여 break 또는 continue 를 적용할 수 있다

레이블(Labeled Statements) 문법

  • 레이블 이름: 을 붙여 반복문을 특정하고, break 레이블 이름 또는 continue 레이블 이름 으로 원하는 반복문을 조작할 수 있다
레이블이름: while 조건 {
    // 코드
    break 레이블이름  // 특정 반복문을 종료
    continue 레이블이름  // 특정 반복문의 다음 반복 실행
}

break in Labeled Statements

  • 특정 반복문을 종료하기

기본적인 break는 가장 가까운 반복문만 종료하지만, 레이블을 사용하면 외부 반복문을 종료할 수 있다

// 중첩된 반복문에서 빠져나오기
outerLoop: for i in 1...3 {
    for j in 1...3 {
        print("i: \(i), j: \(j)")
        if i == 2 && j == 2 {
            print("레이블을 사용하여 전체 반복문 종료!")
            break outerLoop  // 바깥쪽 for문을 종료
        }
    }
}


// 실행 결과
i: 1, j: 1
i: 1, j: 2
i: 1, j: 3
i: 2, j: 1
i: 2, j: 2
레이블을 사용하여 전체 반복문 종료!

continue in Labeled Statements

  • 특정 반복문의 다음 반복을 실행하기

기본적인 continue는 가장 가까운 반복문의 다음 루프로 이동하지만, 레이블을 사용하면 외부 반복문의 다음 루프로 바로 이동할 수 있다

// 바깥쪽 루프의 다음 반복 실행하기
outerLoop: for i in 1...3 {
    for j in 1...3 {
        if j == 2 {
            print("j가 2일 때 바깥쪽 반복문으로 이동!")
            continue outerLoop  // 바깥쪽 for문의 다음 반복 실행
        }
        print("i: \(i), j: \(j)")
    }
}


// 실행 결과
i: 1, j: 1
j가 2일 때 바깥쪽 반복문으로 이동!
i: 2, j: 1
j가 2일 때 바깥쪽 반복문으로 이동!
i: 3, j: 1
j가 2일 때 바깥쪽 반복문으로 이동!
profile
iOS 개발자 지망생

0개의 댓글