개요
이번 블로그 포스트에서는 Golang에서 if
문을 사용하는 방법에 대해서 살펴보려고 합니다. 이 블로그 포스트에서 소개하는 코드는 다음 링크를 통해 확인하실 수 있습니다.
if문
Golang에서는 다음과 같이 if
문을 사용할 수 있습니다. if문을 사용하여 조건을 검사하고, 조건에 해당하는 구문을 실행할 수 있습니다.
if 조건 {
코드 블록
} else if 조건 {
코드 블록
} else {
코드 블록
}
if문을 사용하는 방법에 대해서 알아보기 위해, main.go
파일을 생성하고 다음과 같이 작성합니다.
package main
import "fmt"
func main() {
v := 89
if v > 90 {
fmt.Println("B")
} else if v > 80 {
fmt.Println("B")
} else if v > 70 {
fmt.Println("C")
} else {
fmt.Println("F")
}
}
작성한 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.
# go run main.go
B
쇼트 서킷
Golang에서는 조건식을 실행할 때, 쇼트 서킷(Short circuit)이 사용됩니다.
false && 조건
논리 연산을 수행할 때, 앞에 조건을 수행하고, 그 다음 뒤에 조건을 수행하게 됩니다. &&
연산은 두 조건이 모두 참일 때만, 참이 됩니다. 따라서 위와 같이 앞에 실행한 조건이 false
이면 뒤에 조건을 실행해도 절대로 true
가 될 수 없기 때문에, 뒤에 조건은 실행하지 않고, 결과로 false
를 반환하게 됩니다.
true || 조건
위에 조건도 역시, 앞에 조건이 이미 true
이고, or
연산은 둘중 하나만 참이여도 참이 되므로, 뒤에 연산을 굳이 실행할 필요가 없습니다.
Golang에서는 이와 같은 쇼트 서킷이 사용되며, main.go
를 다음과 같이 수정하여 확인할 수 있습니다.
package main
import "fmt"
func first(result bool) bool {
fmt.Println("first condition is called!")
return result
}
func second() bool {
fmt.Println("Second condition is called!")
return true
}
func main() {
fmt.Println("ex 1")
if first(false) && second() {
}
fmt.Println("ex 2")
if first(true) && second() {
}
fmt.Println("ex 3")
if first(true) || second() {
}
fmt.Println("ex 4")
if first(false) || second() {
}
}
작성한 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.
ex 1
first condition is called!
ex 2
first condition is called!
Second condition is called!
ex 3
first condition is called!
ex 4
first condition is called!
Second condition is called!
이로써 쇼트 서킷이 적용되어 두번째 조건을 실행하지 않는 것을 확인할 수 있습니다.
조건문의 초기화문
다른 언어와는 다르게 Golang에서는 if
문에서 초기화문(Initialization statement)을 사용할 수 있습니다.
if 초기화문; 조건문 {
코드 블록
}
초기화문에서 할당된 변수는, 조건문에서 사용되거나 조건문안에 코드 블록에서 사용할 수 있습니다.
func testFunc() (int, bool) {
return 1, true
}
func main() {
if v, success := testFunc(); success {
fmt.Println(v)
}
fmt.Println(v) // ERROR
}
초기화문에서 선언된 변수는 외부에서는 사용할 수 없으므로, 위와 같이 외부에서 사용하는 경우 컴파일 에러가 발생합니다.
완료
이것으로 Golang에서 if
문을 사용하는 방법에 대해서 알아보았습니다. 또한 Golang의 특유 문법인 조건문의 초기화문에 대해서도 알아보았습니다.
제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!
앱 홍보
Deku
가 개발한 앱을 한번 사용해보세요.Deku
가 개발한 앱은 Flutter로 개발되었습니다.관심있으신 분들은 앱을 다운로드하여 사용해 주시면 정말 감사하겠습니다.