for, range
Go의 유일한 루프가 for다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
package main
import (
"fmt"
)
func superAdd(numbers ...int) int {
total := 0
for index, number := range numbers {
total += number
fmt.Println("index: ", index, ", number: ", number)
}
return total
}
func main() {
result := superAdd(1, 2, 3, 4, 5, 6)
fmt.Println(result)
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
(결과)
if
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
package main
import (
"fmt"
)
func canIDrink(age int) bool {
koreanAge := age + 2
if koreanAge < 18 {
return false
}
return true
}
func main() {
fmt.Println(canIDrink(16))
}
|
조건식을 하나만 사용할 때는 소괄호를 쓰지 않는다.
조건식의 결과를 반대로 뒤집기 위해 ! 연산자를 사용할 수도 있다.
중괄호({})는 필수이다. if 문 내부에 코드가 단 한 줄만 있더라도 중괄호를 써야 한다.
여는 괄호({)는 if와 같은 줄에 있어야 하고, 닫는 괄호(})는 else와 같은 줄에 있어야 한다.
처리할 조건식이 많을 때는 else if 대신 switch 문을 사용한다.
이것은 위 함수와 동일한 내용인데 잘 보면 if 바로 뒤에 koreanAge 초기화구문이 들어가 있는 것을 볼 수 있다.
변수가 if문 안에서만 쓰일 경우, 이처럼 if 바로 뒤에 적어주면 다른 곳에서는 쓰이지 않는다는 것을 알 수 있어 코드의 가독성이 높아진다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
package main
import (
"fmt"
)
func canIDrink(age int) bool {
if koreanAge := age + 2; koreanAge < 18 {
return false
}
return true
}
func main() {
fmt.Println(canIDrink(16))
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
Switch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
package main
import (
"fmt"
)
func canIDrink(age int) bool {
switch age {
case 16,17:
return false
case 18:
return true
}
return false
}
func main() {
fmt.Println(canIDrink(16))
}
|
switch 문은 첫 번째 case의 조건부터 차례로 비교하다가 조건이 일치하는 case의 구문을 수행하고 switch 문을 종료한다. case에는 값을 하나 이상 쓸 수 있다. 값을 둘 이상 쓸 때는 콤마(,)로 구분해준다.
fallthrough
일치하는 case 조건을 만나면 바로 switch 문을 빠져나오므로 switch 문에는 break를 쓰지 않아도 된다. 일치하는 조건을 만났지만 switch 문을 빠져나오지 않고 다음 case로 넘어가려면 fallthrough를 표기해야 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
package main
import "fmt"
func main() {
i := 2
switch i {
case 1:
fmt.Println("i는 1보다 작거나 같다")
fallthrough
case 2:
fmt.Println("i는 2보다 작거나 같다.")
fallthrough
case 3:
fmt.Println("i는 3보다 작거나 같다.")
}
}
|
(결과)
'Golang' 카테고리의 다른 글
[GoLang 시작하기 6] Array, map, struct (0) | 2020.03.20 |
---|---|
[Golang 시작하기 5] 포인터 (0) | 2020.03.20 |
[GoLang 시작하기 3] Naked Return과 Defer (0) | 2020.03.17 |
[GoLang 시작하기 2] 함수의 기본 형태, 변수와 상수 (0) | 2020.03.15 |
[GoLang 시작하기] Go Download 및 프로젝트 실행하기 (0) | 2020.03.15 |