728x90
    
    
  이제 숫자 옆에 영문 이름도 같이 넣는 프로그램을 만들어보자. 현재까지의 지식으로는 다음과 같이 짤 수 있을 것이다.
1 2 3 4 5 6 7 8 9 10 11 12 13  | if i == 0 {   fmt.Println("Zero") } else if i == 1 {   fmt.Println("One") } else if i == 2 {   fmt.Println("Two") } else if i == 3 {   fmt.Println("Three") } else if i == 4 {   fmt.Println("Four") } else if i == 5 {   fmt.Println("Five") }  | cs | 
이건 말도 안된다. switch 명령을 이용해보자. 다음과 같이 다시 작성할 수 있을 것이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15  | package main import "fmt" func main() {     switch i {         case 0: fmt.Println("Zero")         case 1: fmt.Println("One")         case 2: fmt.Println("Two")         case 3: fmt.Println("Three")         case 4: fmt.Println("Four")         case 5: fmt.Println("Five")         default: fmt.Println("Unknown Number")     } }  | cs | 
switch 문은 switch 키워드가 먼저 나오고, 다음으로 식 (여기서는 i) 과 일련의 case 문이 나온다. 표현식의 값은 각각의 case 키워드와 비교하게 된다. 만약 둘의 값이 같으면 : 다음의 부분이 실행되는 것이다.
if 문과 마찬가지로, 각각의 case 문 역시 위에서 아래로 한 줄씩 실행된다. switch 문은 일치하는 값이 없을 때 표현할 default 값을 지원한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17  | package main import "fmt" func main() { for i := 0; i <= 10; i ++ {     switch i {         case 0: fmt.Println(i, "Zero")         case 1: fmt.Println(i, "One")         case 2: fmt.Println(i, "Two")         case 3: fmt.Println(i, "Three")         case 4: fmt.Println(i, "Four")         case 5: fmt.Println(i, "Five")         default: fmt.Println(i, "Unknown Number")     }   } }  | cs | 
1 2 3 4 5 6 7 8 9 10 11 12 13  | :~/go/src/golang-book/chapter5# go run main.go 0 Zero 1 One 2 Two 3 Three 4 Four 5 Five 6 Unknown Number 7 Unknown Number 8 Unknown Number 9 Unknown Number 10 Unknown Number  | cs | 
728x90
    
    
  'Season 1 아카이브 > 프로그래밍' 카테고리의 다른 글
| Go 언어 입문 - Control Structures - Slice (golang-book) (1) | 2018.09.04 | 
|---|---|
| Go 언어 입문 - Control Structures - Array (golang-book) (0) | 2018.09.01 | 
| Go 언어 입문 - Control Structures - If (golang-book) (0) | 2018.08.31 | 
| Go 언어 입문 - Control Structures - For (golang-book) (0) | 2018.08.31 | 
| Go 언어 입문 - Variables (golang-book) (0) | 2018.08.28 |