go
Go 조건문
까오기
2024. 7. 11. 11:01
Go 언어에서 조건문은 프로그램의 흐름을 제어하는 데 사용됩니다. 주로 if, else if, else, 그리고 switch 문을 사용하여 조건에 따라 코드 블록을 실행할 수 있습니다. Go의 조건문은 다른 많은 언어와 비슷하지만, 고유한 문법적 특성이 있습니다.
if 문
if 문은 조건이 참일 때 코드 블록을 실행합니다.
package main
import (
"fmt"
)
func main() {
x := 10
if x > 5 {
fmt.Println("x는 5보다 큽니다.")
} else {
fmt.Println("x는 5보다 작거나 같습니다.")
}
}
if-else 문
if 문과 else 문을 함께 사용하여 조건이 참일 때와 거짓일 때 각각 다른 코드 블록을 실행할 수 있습니다.
package main
import (
"fmt"
)
func main() {
x := 10
if x > 5 {
fmt.Println("x는 5보다 큽니다.")
} else {
fmt.Println("x는 5보다 작거나 같습니다.")
}
}
if-else if-else 문
여러 조건을 검사하고, 각 조건에 따라 다른 코드 블록을 실행할 수 있습니다.
package main
import (
"fmt"
)
func main() {
x := 10
if x > 15 {
fmt.Println("x는 15보다 큽니다.")
} else if x > 5 {
fmt.Println("x는 5보다 크고 15보다 작거나 같습니다.")
} else {
fmt.Println("x는 5보다 작거나 같습니다.")
}
}
초기화 문이 있는 if 문
if 문에서는 조건을 평가하기 전에 초기화 문을 사용할 수 있습니다. 초기화 문은 조건문 내에서만 유효한 변수를 선언하는 데 사용됩니다.
package main
import (
"fmt"
)
func main() {
if y := 20; y > 15 {
fmt.Println("y는 15보다 큽니다.")
}
// y 변수는 if 문 블록 바깥에서는 사용할 수 없습니다.
}
switch 문
switch 문은 다중 분기(multiple branches)를 처리할 때 유용합니다. 여러 값을 비교할 때 switch 문을 사용하면 코드가 더 깔끔해집니다.
package main
import (
"fmt"
)
func main() {
x := 2
switch x {
case 1:
fmt.Println("x는 1입니다.")
case 2:
fmt.Println("x는 2입니다.")
case 3:
fmt.Println("x는 3입니다.")
default:
fmt.Println("x는 1, 2, 3 중 하나가 아닙니다.")
}
}
여러 조건을 가진 switch 문
switch 문은 여러 조건을 동시에 검사할 수 있습니다. 콤마(,)를 사용하여 여러 값을 하나의 case에 나열할 수 있습니다.
package main
import (
"fmt"
)
func main() {
x := 2
switch x {
case 1, 2, 3:
fmt.Println("x는 1, 2, 3 중 하나입니다.")
default:
fmt.Println("x는 1, 2, 3 중 하나가 아닙니다.")
}
}
조건이 있는 switch 문
switch 문에서는 조건을 사용할 수도 있습니다. switch 뒤에 조건을 넣지 않고, 각 case에 조건을 넣어 사용할 수 있습니다.
package main
import (
"fmt"
)
func main() {
x := 10
switch {
case x < 5:
fmt.Println("x는 5보다 작습니다.")
case x >= 5 && x < 15:
fmt.Println("x는 5 이상 15 미만입니다.")
default:
fmt.Println("x는 15 이상입니다.")
}
}
예제 코드
다양한 조건문을 사용하는 예제 코드를 보겠습니다:
package main
import (
"fmt"
)
func main() {
x := 10
// if 문
if x > 5 {
fmt.Println("x는 5보다 큽니다.")
}
// if-else 문
if x < 5 {
fmt.Println("x는 5보다 작습니다.")
} else {
fmt.Println("x는 5보다 크거나 같습니다.")
}
// if-else if-else 문
if x < 5 {
fmt.Println("x는 5보다 작습니다.")
} else if x == 10 {
fmt.Println("x는 10입니다.")
} else {
fmt.Println("x는 5보다 크고 10은 아닙니다.")
}
// 초기화 문이 있는 if 문
if y := 20; y > 15 {
fmt.Println("y는 15보다 큽니다.")
}
// switch 문
switch x {
case 1:
fmt.Println("x는 1입니다.")
case 2:
fmt.Println("x는 2입니다.")
case 10:
fmt.Println("x는 10입니다.")
default:
fmt.Println("x는 1, 2, 10 중 하나가 아닙니다.")
}
// 여러 조건을 가진 switch 문
switch x {
case 1, 2, 3:
fmt.Println("x는 1, 2, 3 중 하나입니다.")
case 10, 20, 30:
fmt.Println("x는 10, 20, 30 중 하나입니다.")
default:
fmt.Println("x는 1, 2, 3, 10, 20, 30 중 하나가 아닙니다.")
}
// 조건이 있는 switch 문
switch {
case x < 5:
fmt.Println("x는 5보다 작습니다.")
case x >= 5 && x < 15:
fmt.Println("x는 5 이상 15 미만입니다.")
default:
fmt.Println("x는 15 이상입니다.")
}
}
결과
x는 5보다 큽니다.
x는 5보다 크거나 같습니다.
x는 10입니다.
y는 15보다 큽니다.
x는 10입니다.
x는 10, 20, 30 중 하나입니다.
x는 5 이상 15 미만입니다.
이 코드는 다양한 조건문을 사용하여 값을 검사하고, 각 조건에 따라 다른 메시지를 출력하는 방법을 보여줍니다.
* 출처 : chatGPT