switch 분기문 사용하기

이재홍 http://www.pyrasis.com 2014.12.17 ~ 2015.02.07

다양한 조건을 if, else if 조건문으로 나열하는 것보다 switch 분기문을 사용하면 좀 더 간단하게 조건을 표현할 수 있습니다.

  • switch 변수 { case 값: 코드 }
switch 변수 {
case 1:
	// 값1일 때 실행할 코드를 작성합니다.
case 2:
	// 값2일 때 실행할 코드를 작성합니다.
default:
	// 모든 case에 해당하지 않을 때 실행할 코드를 작성합니다.
}

case는 처음부터 순서대로 값을 판단하며 값이 일치하면 해당 코드를 실행한 뒤 switch 분기문을 중단합니다. 그리고 모든 case에 해당하지 않을 때는 default:를 실행합니다. 한가지 특이한 점은 Go 언어의 switch 분기문은 C, C++와는 달리 case에서 break 키워드를 생략합니다.

이제 switch 분기문을 사용하여 변수 i가 0, 1, 2, 3, 4일 때 각 숫자를 표시하고 아무것도 해당되지 않을 때는 -1을 표시해보겠습니다.

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)
}

실행 결과

3

switch에 i를 설정했으므로 i의 값에 따라 각 case가 실행됩니다. 여기서는 i에 3이 들어있으므로 case 3:이 실행되어 3이 출력됩니다.

case는 숫자뿐만 아니라 문자열도 값으로 사용할 수 있습니다.

s := "world"

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

실행 결과

world

저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.

Published

01 June 2015