packagemainimport"fmt"funcmain(){switchage:=getMyAge();age{case9:fallthroughcase10:fallthroughcase11:fmt.Println("You need to be at least 12-years-old to sign up.")case12:fallthroughcase13:fmt.Println("You need parent's approval to sign up.")default:fmt.Println("You're ok to sign up.")}}funcgetMyAge()int{return9}
$ ./go_switch_fallthrough
You need to be at least 12-years-old to sign up.
case에서 조건 검사
위에서는 fallthrough 사용 예시를 보여주기 위해 11세 이하 조건을 간략하게 9, 10, 11만 선택하게 했다. default가 14세 이상이기 때문에 입력 값이 0~8이 들어오면 버그가 발생한다. Go에서는 case에서 조건 검사가 가능하니, 이를 활용해보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
packagemainimport"fmt"funcmain(){switchage:=getMyAge();true{caseage<12:fmt.Println("You need to be at least 12-years-old to sign up.")case12<=age&&age<14:fmt.Println("You need parent's approval to sign up.")default:fmt.Println("You're ok to sign up.")}}funcgetMyAge()int{return8}
$ ./go_switch_case_cond
You need to be at least 12-years-old to sign up.