[Golang] switch문

2021-10-10 hit count image

Golang에서 switch문을 사용하는 방법에 대해서 알아봅시다.

개요

이번 블로그 포스트에서는 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 구문이 없으므로, 다음 케이스도 함께 실행하고 싶다면, 다음과 같이 fallthrought를 사용해야 합니다.

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문과 같이 초기화문을 사용할 수 있는 것을 확인하였습니다.

제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!

책 홍보

스무디 한 잔 마시며 끝내는 React Native 책을 출판한지 벌써 2년이 다되었네요.
이번에도 좋은 기회가 있어서 스무디 한 잔 마시며 끝내는 리액트 + TDD 책을 출판하게 되었습니다.

아래 링크를 통해 제가 쓴 책을 구매하실 수 있습니다.
많은 분들에게 도움이 되면 좋겠네요.

스무디 한 잔 마시며 끝내는 React Native, 비제이퍼블릭
스무디 한 잔 마시며 끝내는 리액트 + TDD, 비제이퍼블릭
Posts