개요
이번 블로그 포스트에서는 Golang에서 switch문을 사용하는 방법에 대해서 살펴보려고 합니다. 이 블로그 포스트에서 소개하는 코드는 다음 링크를 통해 확인하실 수 있습니다.
switch문
if문은 조건을 검사하여 코드 블록을 실행하지만, switch문은 값을 검사하고 해당 코드 블록을 실행합니다.
switch 비교값{
case 값1:
코드 블록
case 값2:
코드 블록
default:
코드 블록
}
Golang에서 switch문을 사용하는 방법에 대해서 살펴보기 위해 main.go 파일을 생성하고 다음과 같이 수정합니다.
package main
import "fmt"
func main() {
a := 2
switch a {
case 1:
fmt.Println("a == 1")
case 2:
fmt.Println("a == 2")
case 3:
fmt.Println("a == 3")
default:
fmt.Println("a is not 1, 2 or 3")
}
}
프로그램을 실행하면 다음과 같은 결과를 확인할 수 있습니다.
# go run main.go
a == 2
break & fallthrough
보통 다른 언어에서 switch문을 사용할 때, break를 사용하여 코드 블록을 종료시키지만, Golang에서는 break 구문을 생략할 수 있습니다.
다른 언어에서 break문을 생략하면 다음 케이스 구문이 함께 실행됩니다. 하지만, Golang에서는 break 구문이 없으므로, 다음 케이스도 함께 실행하고 싶다면, 다음과 같이 fallthrough를 사용해야 합니다.
package main
import "fmt"
func main() {
a := 2
switch a {
case 1:
fmt.Println("a == 1")
case 2:
fmt.Println("a == 2")
fallthrough
case 3:
fmt.Println("a == 3")
default:
fmt.Println("a is not 1, 2 or 3")
}
}
위의 코드를 실행하면 이전과는 다르게 다음과 같이, 다음 케이스 블록도 실행되는 것을 확인할 수 있습니다.
# go run main.go
a == 2
a == 3
여러값 검사
Golang에서는 다음과 같이 여러 값을 검사할 수 있습니다.
switch 비교값{
case 값1, 값2:
...
case 값3, 값4:
...
case 값5:
...
default:
...
}
Golang에서 여러 값을 검사하는 방법을 확인하기 위해 main.go 파일을 다음과 같이 수정합니다.
package main
import "fmt"
func main() {
a := 2
switch a {
case 1, 3, 5, 7, 9:
fmt.Println("Odd")
case 2, 4, 6, 8:
fmt.Println("Even")
default:
fmt.Println("Please insert 0 < value < 10.")
}
}
위에 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.
# go run main.go
Even
초기화문
switch문도 if문과 같이 초기화문을 사용할 수 있습니다.
switch 초기화문; 비교값{
case 값1, 값2:
...
case 값3, 값4:
...
case 값5:
...
default:
...
}
switch문에서 초기화문을 사용하는 방법에 대해서 알아보기 위해 main.go 파일을 다음과 같이 수정합니다.
package main
import "fmt"
func main() {
switch a := 2; a {
case 1, 3, 5, 7, 9:
fmt.Println("Odd")
case 2, 4, 6, 8:
fmt.Println("Even")
default:
fmt.Println("Please insert 0 < value < 10.")
}
}
위에 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.
# go run main.go
Even
완료
이것으로 Golang에서 switch문을 사용하는 방법을 확인해 보았습니다. Golang에서 switch문은 다른 언어와 다르게 break를 생략할 수 있으며, fallthrough를 통해 다음 케이스를 함께 실행할 수 있습니다. 또한 if문과 같이 초기화문을 사용할 수 있는 것을 확인하였습니다.
제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!
앱 홍보
Deku가 개발한 앱을 한번 사용해보세요.Deku가 개발한 앱은 Flutter로 개발되었습니다.관심있으신 분들은 앱을 다운로드하여 사용해 주시면 정말 감사하겠습니다.














![[심통]현장에서 바로 써먹는 리액트 with 타입스크립트 : 리액트와 스토리북으로 배우는 컴포넌트 주도 개발, 심통](https://img1c.coupangcdn.com/image/affiliate/banner/7cba8cb0601eebaf88a17a0c3cf65a63@2x.jpg)