Go by Example: [07] Switch

Switch

switch문장은 여러개의 조건 분기를 처리할 경우에 사용하면, 읽기도 편하고 이해하기도 쉽습니다.

package main

import "fmt"
import "time"

func main() {

    i := 2
    fmt.Print("write ", i, " as ")
    
    switch i {                           // [1]
    case 1:
        fmt.Println("one")
    case 2:
        fmt.Println("two")
    case 3:
        fmt.Println("three")
    }
    
    switch time.Now().Weekday() {        // [2]
    case time.Saturday, time.Sunday:
        fmt.Println("it's the weekend")
    default:
        fmt.Println("it's a weekday")
    }
    
    t := time.Now()
    switch {                             // [3]
    case t.Hour() < 12:
        fmt.Println("its's before noon")
    default:
        fmt.Println("it's after noon")
    }
}
  1. 기본적인 switch문장입니다.
  2. 쉼표(,)로 분리된 여러개의 값을 한개의 case문에서 사용할 수 있습니다.
    default를 추가적으로 사용할 수 있습니다. (case문에서 원하는 값이 없을 경우 수행합니다.)
  3. switch문장은 수식없이 사용할 수 있습니다. if/else문장과 유사한 효과를 낼 수 있습니다.
    예제에서와 같이 case문에서 상수값이 아닌값도 사용할 수 있습니다.

실행하면 다음과 같습니다.

$ go run switch.go 
write 2 as two
it's the weekend
it's before noon