괴발개발 성장기

Study/Go 언어

[golang] switch문 공부하기

지니유 2022. 2. 11. 23:08
반응형

# 기본 switch문 구조

switch 비굣값 {
    case 값1:
        문장1
    case 값2:
        문장2
    default:
        문장3
    }
  • 비굣값과 값1이 같을 때 문장1 실행하고 종료됩니다. 비굣값이 값이과 다르면 그 다음 값2를 체크합니다. 값2와 값이 다르면 default 문장이 실행됩니다. default는 생략이 가능합니다.
  • ★ 다른 언어와 다르게 Go언어는 break를 사용하지 않아도 자동으로 switch문을 빠져 나갑니다.
  • 다음 case문으로 가고 싶을 때에는 fallthrough를 사용하면 됩니다. 되도록 사용하지 않길 권장한다고 한다.

예시

      today := "sunday"
      switch today {
      case "monday", "tuesday", "wednesday","thursday","friday":
          fmt.Println("오늘은 출근해야합니다")
      case "saturday", "sunday":
          fmt.Println("오늘은 푹 쉬어도 됩니다")
      default:
          fmt.Println("값을 잘못입력했습니다.")
      }
  • today는 sunday이기 때문에 결과값은 "오늘은 푹 쉬어도 됩니다"입니다.

# 비굣값없는 switch문

switch {
    case 값1:
        문장1
    case 값2:
        문장2
    default:
        문장3
    }
  • 비굣값을 생략할 수 있습니다. 그럼 비굣값은 true입니다.

예시

    day :=28
      switch {
      case day>=1 && day <=10:
          fmt.Println("월 초 입니다")
      case day>20 && day <=31:
          fmt.Println("월 말입니다.")
      case day >31:
          fmt.Println("잘못입력했습니다.")
      default :
          fmt.Println("월 중간입니다.")
      }
  • 결과값 : 월 말입니다.
  • 조건문을 비교할 수 있습니다.

# 초기값 설정하는 switch문


switch 초기값; 비굣값 {
    case 값1:
        문장1
    case 값2:
        문장2
    default:
        문장3
    }

예시


switch month:=10; month{
    case 1,2,12:
        fmt.Println("겨울입니다.")
    case 3,4,5:
        fmt.Println("봄입니다.")
    case 6,7,8:
        fmt.Println("여름입니다.")
    case 9,10,11:
        fmt.Println("가을입니다.")
    default :
        fmt.Println("1~12월까지만 존재합니다.")
    }
  • switch문은 한번에 여러값을 비교할 수 있습니다.
반응형