Go의 조건문인 if, switch문에 대해 알아봅시다.
if문
어느 언어에서나 등장하는 바로 그 if 입니다.
다른 언어와 큰 차이는 없지만 주의점이 있습니다.
Go의 if문에서는 무조건 Boolean 식만 사용가능합니다.
0, 1 등으로 if문이 사용 가능한 다른 몇몇 언어들과는 다른 점입니다.
간단한 사용 예시입니다.
1
2
3
4
5
6
7
8
9
|
package main
func main() {
a := 1
if a == 1 {
println("TRUE~~")
}
}
|
cs |
결과는 당연히
입니다.
if - else 문
if-else문도 당연히 존재합니다.
예시입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
package main
func main() {
a := 3
if a == 1 {
println("1입니다.")
} else if a == 2 {
println("2입니다.")
} else {
println("둘다 아닙니다.")
}
}
|
cs |
결과는 아래입니다.
optional statement
if 문 내에서 간단한 변수 선언이나 문장등의 실행이 가능합니다. ;(세미콜론으로 구분)하고 한 문장 안에 있어야 합니다.
이때 선언한 변수의 범위(scope)는 당연하지만 if-else문 괄호 안입니다.
예시입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package main
func main() {
a := 3
b := 10
if c := a * 2; c < b {
println(c)
}
// println(c) // error(undefined: c)
if println("Hi"); a < b {
println("Go")
}
}
|
cs |
결과입니다.
주석처리해둔 println(c)의 주석을 풀면
위와같은 에러가 납니다.
위에서 말했던 것처럼 scope를 벗어나서 변수 c가 undefined된 변수가 되버린것 입니다.
switch문
switch문 또한 존재합니다. switch 뒤에 변수나 expression을 적어서 사용합니다.
Go에서는 break를 적지 않아도 자동으로 멈추기 때문에 다음 case로 이동하지 않습니다.
기본 사용 예시입니다.
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
31
|
package main
func main() {
var name string
menu := 1
switch menu {
case 1:
name = "start"
case 2:
name = "option"
case 3:
name = "help"
default:
name = "exit"
}
println(name)
// Expression을 사용한 경우
switch x := menu + 2; x {
case 1:
name = "one"
case 2, 3:
name = "two, three"
default:
name = "default"
}
println(name)
}
|
cs |
위의 경우는 일반적인 사용이고 아래는 expression이 들어간 경우입니다.
결과는
expression에는 위의 예시처럼 변수 선언이나
switch println("Hi"); menu { ... }
처럼 간단한 문장이 들어갈 수 있습니다.
fallthrough
일반적이 언어들의 switch문 처럼 조건이 맞아도 다음 case로 가고 싶다면
fallthrough
를 이용해야 합니다.
사용 예시입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
package main
func main() {
val := 2
check(val)
}
func check(val int) {
switch val {
case 1:
println("실행되지 안습니다.")
fallthrough
case 2:
println("val = 2 이기 때문에 실행됩니다.")
fallthrough
case 3:
println("fallthrough에 의해 실행됩니다.(1)")
fallthrough
default:
println("fallthrough에 의해 실행됩니다.(2)")
}
}
|
cs |
결과입니다.
'Language > Go' 카테고리의 다른 글
[GoLang] 연산자 (0) | 2019.08.08 |
---|---|
[GoLang] 자료형, 변수, 상수 (0) | 2019.08.04 |
[GoLang] Go 개발 환경 구축하기 (VS Code, vim) (0) | 2019.08.01 |
[GoLang] Go 설치하기 (리눅스/윈도우) (0) | 2019.08.01 |
[GoLang] Hello, playground (0) | 2019.08.01 |