728x90
1. if
- 조건문은 다른 언어와 비슷하다.
- 괄호는 생략
- {는 꼭 조건과 같은 라인에 와야한다.
- else 문도 꼭 }와 같은 라인이어야 한다.
if k == 1 {
println("One")
} else if k == 2 {
println("Two")
} else {
println("!")
}
2. switch
- 복수개의 case 값들이 있을 경우는 case 3,4 처럼 콤마를 써서 나열할 수 있다.
- 다른 언어는 switch 키워드 뒤에 변수나 expression 반드시 두지만, Go는 이를 쓰지 않아도 된다. 이 경우 Go는 switch expression을 true로 생각하고 첫번째 case문으로 이동하여 검사한다.
- 다른 언어의 case문은 break를 쓰지 않는 한 다음 case로 이동하지만, Go는 다음 case로 가지 않는다.
- 다른 언어의 switch는 일반적으로 변수의 값을 기준으로 case로 분기하지만, Go는 그 변수의 Type에 따라 case로 분기할 수 있다.
var name string
var category = 1
switch category {
case 1:
name = "case1"
case 2:
name = "case2"
case 3, 4:
name = "case3, 4"
default:
name = "default"
}
println(name)
// switch 뒤에 expression이 없을 수 있음
func grade(score int) {
switch {
case score >= 90:
println("A")
case score >= 80:
println("B")
case score >= 70:
println("C")
case score >= 60:
println("D")
default:
println("No Hope")
}
}
// Type switch
switch v.(type) {
case int:
println("int")
case bool:
println("bool")
case string:
println("string")
default:
println("unknown")
}
- fallthrough 문을 사용하면 모든 case를(3, default) 거친다.
func check(val int) { // val = 2
switch val {
case 1:
fmt.Println("1 이하")
fallthrough
case 2:
fmt.Println("2 이하")
fallthrough
case 3:
fmt.Println("3 이하")
fallthrough
default:
fmt.Println("default 도달")
}
}
- 자바 switch
switch(입력변수) {
case 입력값1: ...
break;
case 입력값2: ...
break;
...
default: ...
break;
}
회사에서 사용할 때는 java의 switch문 처럼 사용했던 것 같다.
go를 접하고 다른 언어에서도 if문 쓰는 방식처럼 사용하고 있다.(왠지 깔끔해보여서)
참고사이트
http://golang.site/go/article/7-Go-%EC%A1%B0%EA%B1%B4%EB%AC%B8
728x90
'개발 > Go' 카테고리의 다른 글
[Go] 기초 - 함수 (0) | 2022.07.17 |
---|---|
[Go] 기초 - 반복문 (0) | 2022.07.17 |
[Go] 기초 - 연산자 (0) | 2022.07.13 |
[Go] 기초 - 데이터 타입 (0) | 2022.07.13 |
[Go] 기초 - 변수와 상수 (0) | 2022.07.12 |