Go 언어

본문 바로가기
사이트 내 전체검색


Go 언어
Go 언어

5. switch 문 사용하기

페이지 정보

작성자 관리자 댓글 0건 조회 2,452회 작성일 19-03-11 08:36

본문

5. switch 문 사용하기

다양한조건을 if, else if 문으로 나영하는 것보다 switch 문을 사용하면 간단하게 조건을 표현할 수 있다.


package main

import "fmt"

func main() {
 i := 3

 switch i {             // 값을 판단할 변수 설정
 case 0:                // 각 조건에 일치하는
  fmt.Println(0) // 코드를 실행합니다.
 case 1:
  fmt.Println(1)
 case 2:
  fmt.Println(2)
 case 3:                // 3과 변수의 값이 일치하므로
  fmt.Println(3) // 이 부분을 실행하고 이후 실행을 중단
 case 4:
  fmt.Println(4)
 default:               // 모든 case에 해당하지 않을 때 실행
  fmt.Println(-1)
 }
}

package main

import "fmt"

func main() {
 s := "world"

 switch s {                   // 값을 판단할 변수 설정
 case "hello":                // 각 조건에 일치하는
  fmt.Println("hello") // 코드를 실행합니다.
 case "world":                // 문자열 "world"와 변수의 값이 일치하므로
  fmt.Println("world") // 이 부분을 실행하고 이후 실행을 중단
 default:
  fmt.Println("일치하는 문자열이 없습니다.")
 }
}

package main

import "fmt"

func main() {
 s := "Hello"
 i := 2

 switch i {                             // 값을 판단할 변수 설정
 case 1:
  fmt.Println(1)
 case 2:                                // i가 2이고
  if s == "Hello" {              // s가 "Hello"이면
   fmt.Println("Hello 2") // Hello 2를 출력하고
   break                  // switch 분기문 실행을 중단
  }

  fmt.Println(2)
 }
}



package main

import "fmt"

func main() {
 i := 3

 switch i {                    // 값을 판단할 변수 설정
 case 4:                       // 각 조건에 일치하는
  fmt.Println("4 이상") // 코드를 실행합니다.
  fallthrough
 case 3:                       // 3과 변수의 값이 일치하므로
  fmt.Println("3 이상") // 이 부분을 실행
  fallthrough           // fallthrough를 사용했으므로 아래 case를 모두 실행
 case 2:
  fmt.Println("2 이상") // 실행
  fallthrough
 case 1:
  fmt.Println("1 이상") // 실행
  fallthrough
 case 0:
  fmt.Println("0 이상") // 실행, 마지막 case에는 fallthrough를 사용할 수 없음
 }
}


여러 조건을 같은 문장으로 처리하고 싶을 때 case에서 ,(콤마)로 값을 구분해 준다.


package main

import "fmt"

func main() {

 i := 3

 switch i {
 case 2, 4, 6: // i가 2, 4, 6일 때

  fmt.Println("짝수")

 case 1, 3, 5: // i가 1, 3, 5일 때

  fmt.Println("홀수")

 }

}


switch 문에서 함수를 실행학 결과값으로 분기를 할 수 있다. 이때 함수를 호출하고 뒤에 ;(세미콜론)을 분여준다.


package main

import (

 "fmt"
 "math/rand"
 "time"

)

func main() {

 rand.Seed(time.Now().UnixNano())      // 현재 시간으로 Seed 값 설정
 switch i := rand.Intn(10); {          // rand.Intn 함수를 실행한 뒤 i에 대입

 case i >= 3 && i < 6:                 // i가 3보다 크거나 같으면서 6보다 작을 때

  fmt.Println("3 이상, 6 미만") // 코드 실행

 case i == 9:                          // i가 9일 때

  fmt.Println("9")              // 코드 실행

 default:                              // 모든 case에 해당하지 않을 때

  fmt.Println(i)                // 코드 실행

 }

}




댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.