Doodly IT

[Go 묘공단 스터디] Switch문 본문

프로그래밍/Go

[Go 묘공단 스터디] Switch문

DoodlyKim 2023. 11. 14. 20:31
  • Switch 문을 쓰는 이유

      if... else if ...else if ...처럼 조건문이 많을 경우에는 가독성이 떨어지기 때문에 case문으로 대체한다.

 

  • Go 에서 Switch 문
pacakge main

import "fmt"

	day:= "thursday"
	switch day{
    
    	case "monday", "tuesday" :
        	fmt.Println("월 화요일은 수업을 가는 날입니다")
        case "wednesday" , "friday","thursday" :
        	fmt.Println("수 , 목, 금요일은 실습가는 날입니다")
        default:
            fmt.Println("에러")
          }

 

if 문 처럼 Go에서도 switch 문을 쓰는데 초기화구문을 넣을 수 있다.

package main
import "fmt"

func getMyAge() int {
return 22
}

func main(){
switch age:= getMyAge(); age{

case 1: fmt.Println("한살입니다")
case 2: fmt.Println("두살입니다")
default : fmt.Println("3살이상입니다")
}
}

 

 

  • break와 fallthrough 키워드 

break문은 다른언어와 마찬가지로 다음 case문을 이어서 실행하지 않도록 하는 키워드이다.

하지만 Go는 break를 쓰지않아고 case문이 진행이 되지않는다.

그러면 만약 다음 case를 진행하고 싶으면 어떻게 해야할까?

이때는 fallthrough라는 키워드를 쓸 수 있다. fallthrough는 다음 case까지 진행하도록 하는 키워드이다.

아래 예제를 보면

 

package main

import "fmt"

func main() {

a := 3

switch a {
    case 1: fmt.Println("One")
    case 2: fmt.Println("Two")
    case 3: fmt.Println("Three")
            fallthrough
    case 4: fmt.Println("Four")
    default: fmt.Println("Default")
}

 

해당 구문에서  결과값은 Three Four가 나오게 된다. fallthourgh 키워드를 썼기 때문에 case가 3인 경우에 Three가 출력이 되고 그 이후 Four가 출력이 된다. break를 쓰지않아도 case는 조건이 충족하면 break가 되기때문에 case 4에서 switch 문을 빠져나오게 된다.

'프로그래밍 > Go' 카테고리의 다른 글

[Go 묘공단 스터디]배열  (0) 2023.11.15
[Go 묘공단 스터디] for문  (0) 2023.11.15
[Go 묘공단 스터디] 조건문  (0) 2023.11.08
[Go 묘공단 스터디] 상수  (0) 2023.11.08
[Go 묘공단 스터디] 함수  (0) 2023.11.08