break 문

break 문

반복문을 돌다가 "이쯤에서 멈추고 빠져나가고 싶다" 싶을 때가 있어요. Go에서는 그때 break 문을 써요. break 문은 같은 함수 안에서 가장 안쪽에 있는 for, switch, select 문의 실행을 종료해요. 조건이 끝나길 기다리지 않고 바로 그 자리에서 흐름을 끊어버리는 거죠.

출처: Go Specification

본문

break 문은 같은 함수 안에서 가장 안쪽에 있는 for, switch, select 문의 실행을 종료합니다.

BreakStmt = "break" [ Label ] .

만약 레이블이 있으면, 그 레이블은 반드시 break 문을 둘러싸고 있는(enclosing) for, switch, select 문 중 하나의 것이어야 하며, 실행이 종료되는 것은 바로 그 레이블이 붙은 문입니다.

예를 들어 중첩된 반복문 안에서 바깥쪽 반복문까지 통째로 빠져나가고 싶을 때, 레이블을 붙여서 break를 쓰면 돼요.

OuterLoop:
	for i = 0; i < n; i++ {
		for j = 0; j < m; j++ {
			switch a[i][j] {
			case nil:
				state = Error
				break OuterLoop
			case item:
				state = Found
				break OuterLoop
			}
		}
	}

여기서 레이블 없는 break라면 그저 가장 가까운 switch만 빠져나가겠지만, break OuterLoop처럼 레이블을 지정하면 바깥쪽 for 문의 실행까지 끝나요. 이렇게 안쪽에서 바깥쪽 루프를 한 번에 벗어나고 싶을 때 레이블이 유용해요.

더 알아보기

  • 실행을 끝내는 게 아니라 다음 반복으로 넘어가고 싶을 때continue 문을 써요.
  • 레이블의 이름은 해당 함수 안에서 고유해야 해요.