Go에서 'break' 문 이해하기
Lukas Schneider
DevOps Engineer · Leapcell

Key Takeaways
break
문은 Go에서 루프 또는 switch 문을 조기에 종료하는 데 사용됩니다.- 레이블이 지정된
break
는 특정 중첩 루프를 종료할 수 있습니다. switch
문에서break
는 선택 사항이지만 명확성을 높일 수 있습니다.
Go의 break
문은 개발자가 루프 또는 switch 문을 조기에 종료할 수 있도록 하는 제어 흐름 메커니즘입니다. 이 기사에서는 Go의 break
문의 구문, 사용법 및 실제 예제를 자세히 살펴봅니다.
'break' 문법
Go에서 break
문은 간단하며 추가 매개 변수가 필요하지 않습니다. 주요 기능은 가장 가까운 둘러싸는 루프 또는 switch 문을 종료하는 것입니다. 기본 구문은 다음과 같습니다.
break
루프에서 'break' 사용
break
문은 루프의 자연스러운 종료 조건이 충족되기 전에 종료하기 위해 루프 내에서 일반적으로 사용됩니다. 이는 특정 조건이 충족되고 루프를 계속할 필요가 없을 때 특히 유용할 수 있습니다.
예제: 'for' 루프 종료
특정 조건이 충족될 때 break
를 사용하여 for
루프를 종료하는 다음 예제를 고려하십시오.
package main import "fmt" func main() { for i := 0; i < 10; i++ { if i == 5 { break } fmt.Println(i) } }
이 예제에서 루프는 0부터 4까지의 숫자를 출력합니다. i
가 5와 같으면 break
문이 실행되어 루프가 종료됩니다.
'switch' 문에서 'break' 사용
Go에서 switch
문의 각 case는 자동으로 종료됩니다. 즉, 다른 일부 언어에서와 같이 암시적인 폴스루가 없습니다. 그러나 break
문은 현재 case뿐만 아니라 둘러싸는 루프를 종료하거나 코드 구조에서 명확성을 제공하기 위해 switch
내에서 여전히 사용할 수 있습니다.
예제: 루프 내에서 'switch' 종료
package main import "fmt" func main() { for i := 0; i < 3; i++ { switch i { case 0: fmt.Println("Zero") case 1: fmt.Println("One") case 2: fmt.Println("Two") break // 이 break는 for 루프가 아닌 switch를 종료합니다. } } }
이 시나리오에서 break
문은 i
가 2일 때 switch
문을 종료하지만 for
루프는 다음 반복으로 계속됩니다.
레이블이 지정된 'break' 문
Go는 또한 레이블이 지정된 break
문을 지원합니다. 이를 통해 특히 중첩 루프 시나리오에서 종료할 루프를 지정할 수 있습니다.
예제: 중첩 루프에서 레이블이 지정된 'break' 사용
package main import "fmt" func main() { outerLoop: for i := 0; i < 3; i++ { for j := 0; j < 3; j++ { if i == 1 && j == 1 { break outerLoop } fmt.Printf("i = %d, j = %d\n", i, j) } } }
여기서 i
가 1이고 j
가 1이면 break outerLoop
문이 outerLoop
를 종료하여 두 루프를 모두 효과적으로 종료합니다. 출력은 다음과 같습니다.
i = 0, j = 0
i = 0, j = 1
i = 0, j = 2
i = 1, j = 0
결론
Go의 break
문은 루프 및 switch 문의 흐름을 제어하는 강력한 도구입니다. 레이블이 지정된 break를 포함하여 사용법을 이해하면 효율적이고 읽기 쉬운 Go 코드를 작성하는 능력이 향상됩니다.
FAQs
예, 레이블이 지정된 break
를 사용하여 특정 중첩 루프를 종료할 수 있습니다.
아니요, Go의 switch
는 각 case를 자동으로 종료하지만 break
는 명확성을 위해 사용할 수 있습니다.
가장 가까운 둘러싸는 루프 또는 switch
문만 종료합니다.
Go 프로젝트 호스팅을 위한 최고의 선택, Leapcell입니다.
Leapcell은 웹 호스팅, 비동기 작업 및 Redis를 위한 차세대 서버리스 플랫폼입니다.
다국어 지원
- Node.js, Python, Go 또는 Rust로 개발하십시오.
무제한 프로젝트를 무료로 배포
- 사용량에 대해서만 지불하십시오. 요청이나 요금이 없습니다.
탁월한 비용 효율성
- 유휴 요금 없이 사용한 만큼만 지불하십시오.
- 예: $25는 평균 응답 시간 60ms에서 694만 건의 요청을 지원합니다.
간소화된 개발자 경험
- 간편한 설정을 위한 직관적인 UI。
- 완전 자동화된 CI/CD 파이프라인 및 GitOps 통합。
- 실행 가능한 통찰력을 위한 실시간 메트릭 및 로깅。
손쉬운 확장성 및 고성능
- 고도의 동시성을 쉽게 처리하기 위한 자동 확장。
- 운영 오버헤드가 전혀 없습니다. 구축에만 집중하십시오。
설명서에서 자세히 알아보십시오!
X에서 팔로우하세요: @LeapcellHQ