프로그래밍언어/Go

switch문『Tucker의 Go 언어 프로그래밍#10』

구구절절2 2021. 5. 27. 16:40
반응형

본글은 『Tucker의 Go 언어 프로그래밍』 스터디 요약 노트입니다.

Switch 문


if 문이 조건에 따라 다른 로직을 수행하는 것이라면 switch문은 값에 따라 다른 로직을 수행할 때 사용한다. 형식은 거의 조건문과 같다. 초기문을 사용할 수 있고 비교값으로 true를 사용하면 if문과 비슷하게 사용할 수 있다.

switch 비굣값 { // 비굣값에는 true, false를 적을 수도 있다. true와 false로 사용하면 조건문과 같다.
case 값1: 
	문장 
case 값2:
	문장 
default:  //모두 다 해당하지 않을 때 default 실행한다.
	문장 
}

//해당하는 값을 만나면 문장을 수행하고 스위치문을 빠져나간다. 

스위치 문은 복잡하게 얽혀있는 if else문을 비교적 간단하게 만들 수 있습니다. 이럴 때 사용하는 용도입니다.

한 번에 여러 값 비교 가능


같은 로직을 실행시키고 싶을 때는 case로 묶을 수 있다.

package main 

import "fmt"

func main() {
	
	day := "thursday"

	switch day {
	case "monday" , "wednesday":
		fmt.Println("월,수는 10시에 go언어 수업가는 날!")
	case "tuesday" ,"thursday" , "friday":
		fmt.Println("화,목,금은 복습하는 날 ")
	}
}

const 열거값과 switch


const 열거값에 따라 수행되는 로직을 변경할 때 switch문을 주로 사용한다.

package main

import "fmt"

type ColorType int  //새로운 타입을 만든다는 뜻 나는 colortype이라는 타입을 선언한다는 뜻 
const (
	Red ColorType = iota  //타입을 새로 지정하는 이유는 의미를 명확하게하기 위함이다. 
	Blue 
	Green 
	Yellow
)

func colorToString(color ColorType) string {
	switch color {
	case Red: 
		return "Red"
	case Blue: 
		return "Blue"
	case Green:
		return "Green"
	case Yellow:
		return "Yellow"
	default: 
		return "Undefined"
	}
}

func getMyFavoriteColor() ColorType {
	return Blue
}

func main()  {
	fmt.Println("My favorite color is" , colorToString(getMyFavoriteColor()))	
}

break와 fallthrough 키워드


switch에서는 해당하는 값을 만나면 문장을 실행하고 switch 문을 종료한다. 하지만 fallthrough를 사용하면 문장을 실행하고 switch문을 종료하지 않고 다음 case로 넘어간다. 그리고 break을 사용하면 switch 문을 빠져나간다.

반응형