Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- API
- tcp
- install
- C
- FOR
- Close
- 영화
- bitcoin
- windows
- channel
- go
- window
- json
- 책
- File
- write
- Callback
- JavaScript
- package
- range
- Sync
- 리뷰
- Python
- mutex
- GO 언어
- http
- Golang
- Linux
- c++
- go언어
Archives
- Today
- Total
Code Habit
Go ) switch 분기문 본문
switch 분기문을 사용하면 다양한 조건을 좀 더 간단하게 표현할 수 있다.
switch 변수 {
case 값1:
fmt.Println("case 1")
case 값2:
fmt.Println("case 2")
default:
fmt.Println("default")
}
Go 언어의 switch 분기문은 C와는 달리 case에서 break 키워드를 생략한다.
변수는 숫자뿐 아니라 문자열도 사용할 수 있고 break를 사용하여 문장 실행을 중단할 수도 있다.
s := "Hello"
switch s {
case "Hi":
fmt.Println("Hi")
case "Hello":
fmt.Println("Hello")
break;
fmt.Println("everyone")
}
fallthrough 키워드를 사용하여 case문을 연달아 실행할 수 있다. 마치 C의 switch 분기문에서 break 키워드를 생략한 것처럼 동작한다.
i:=3
switch i {
case 3:
fmt.Println("3")
fallthrough
case 2:
fmt.Println("2")
fallthrough
case 1:
fmt.Println("1")
}
// 출력 결과
3
2
1
case에서 ,(콤마)로 값을 구분하여 여러 조건을 같은 문장으로 처리할 수 있다.
i := 3
switch i {
case 2, 4, 6:
fmt.Println("짝수")
case 1, 3, 5:
fmt.Println("홀수")
}
case문에서 조건식을 활용할 수 있다.
i := 7
switch { // case에 조건식을 지정했으므로 판단할 변수는 생략
case i >= 5 && i <10;
fmt.Println("5 이상 10 미만")
case i >= 0 && i < 5:
fmt.Println("0 이상 5 미만)
}
switch 분기문 안에서 함수를 실행하고 결과값으로 분기할 수 있다. 이때는 함수를 호출하고 뒤에 ;(세미콜론)을 붙여준다. 이 때 case에서는 값으로 분기할 수 없고 조건식만 사용할 수 있다.
rand.Seed(time.Now().UnixNano())
switch i:= rand.Intn(10); {
case i >= 3 && i < 6:
fmt.Println("3 이상 6 미만")
case i == 9:
fmt.Println("9")
default:
fmt.Println(i)
}