1 조건문 개요
조건문은 프로그래밍에서 프로그램의 논리적 흐름을 제어하는 중요한 도구입니다. Golang에서 조건문은 다른 프로그래밍 언어와 유사하지만 고유한 특징을 가지고 있습니다. 이를 통해 참 또는 거짓 조건에 따라 어떤 코드를 실행할지 결정함으로써 코드의 유연성과 유지보수성을 크게 향상시킬 수 있습니다.
2 if 문
2.1 if 문의 기본적인 사용법
if
문은 Go 언어에서 가장 기본적인 조건문입니다. 그 구문은 다음과 같습니다:
if 조건 {
// 조건이 참일 때 실행할 코드
}
간단한 예시는 다음과 같습니다:
package main
import "fmt"
func main() {
x := 10
if x > 5 {
fmt.Println("x는 5보다 큽니다")
}
}
이 코드는 x
가 5보다 큰지 확인하고, 만약 그렇다면 출력 작업을 수행합니다.
2.2 조건식
조건식은 비교 연산자(예: ==
, !=
, <
, >
, <=
, >=
)와 논리 연산자(예: &&
(AND), ||
(OR), !
(NOT))로 이루어져 있습니다.
예를 들어, 변수가 특정 범위 내에 있는지 확인하려면:
y := 20
if y >= 10 && y <= 30 {
fmt.Println("y는 10부터 30 사이입니다")
}
위의 조건식은 논리 연산자 &&
를 사용하여 y
의 값이 10과 30 사이에 있는지를 확인합니다.
2.3 if...else 및 else if 구조
if
조건이 충족되지 않을 때, else
를 사용하여 대체 코드 블록을 실행할 수 있습니다. else if
를 사용하면 여러 조건을 확인할 수 있습니다. 다음은 예시입니다:
score := 88
if score >= 90 {
fmt.Println("뛰어남")
} else if score >= 80 {
fmt.Println("좋음")
} else if score >= 70 {
fmt.Println("보통")
} else {
fmt.Println("평균 미만")
}
이 코드는 score
의 값에 따라 다른 평가를 출력합니다.
3 switch 문
3.1 switch의 기본 구문
switch
문은 여러 값을 평가해야 하는 상황에 특히 적합한 더 간결한 조건 분기문입니다. switch
문의 기본 구문은 다음과 같습니다:
switch 식 {
case 값1:
// 값1과 일치할 때 실행할 코드
case 값2:
// 값2와 일치할 때 실행할 코드
default:
// 기본적으로 실행할 코드
}
만약 식
의 값이 case
뒤의 값과 일치한다면, 해당 코드 블록이 실행됩니다.
3.2 switch의 fallthrough
Go의 switch
문에서는 fallthrough
키워드를 사용하지 않는 이상 각 브랜치가 기본적으로 다음 case로 넘어가지 않습니다.
switch num {
case 1:
fmt.Println("하나")
fallthrough
case 2:
fmt.Println("둘")
default:
fmt.Println("하나도 아니거나 둘도 아님")
}
위의 코드에서 num
이 1이라면 case 1
과 일치하지만, fallthrough
키워드가 있기 때문에 프로그램은 case 2
의 코드를 계속 실행하고 "둘"을 출력합니다.
3.3 유형 분기 및 사용자 정의 분기
switch
문은 변수 유형에 기반한 분기, 즉 유형 분기를 지원합니다. 게다가, 필요에 따라 더 복잡한 사용자 정의 분기 조건을 생성할 수 있습니다.
유형 분기의 예시:
var i interface{} = 1
switch i.(type) {
case int:
fmt.Println("i는 정수입니다")
case float64:
fmt.Println("i는 float64입니다")
default:
fmt.Println("i는 다른 유형입니다")
}
필요에 따라 더 복잡한 조건 판단을 수행하기 위해 사용자 정의 분기 조건을 작성할 수 있습니다.
4 실전 연습
본 섹션에서 실제 예제를 통해 Golang에서 조건문을 이해하고 적용합니다. if
및 switch
문을 사용하여 실제 문제를 해결하는 것에 능숙해지게 될 것입니다.
학점 계산기
간단한 학점 계산기를 작성해봅시다. 이 프로그램은 사용자가 입력한 점수에 따라 해당하는 학점을 결정하고 출력합니다. 학점 기준은 다음과 같습니다:
- 90 이상: A
- 80에서 89: B
- 70에서 79: C
- 60에서 69: D
- 60 미만: F
이 기능을 구현하기 위해 if
문 또는 switch
문을 사용할 수 있습니다. 먼저, if
문을 사용한 예제를 살펴보겠습니다:
package main
import (
"fmt"
)
func main() {
var score int
fmt.Print("점수를 입력하세요: ")
fmt.Scan(&score)
if score >= 90 {
fmt.Println("학점: A")
} else if score >= 80 {
fmt.Println("학점: B")
} else if score >= 70 {
fmt.Println("학점: C")
} else if score >= 60 {
fmt.Println("학점: D")
} else {
fmt.Println("학점: F")
}
}
이 코드에서는 먼저 사용자가 입력한 점수를 저장할 score
변수를 선언합니다. 그런 다음 fmt.Scan
함수를 사용하여 사용자 입력을 받습니다. 그리고 if
및 else if
문을 사용하여 점수에 해당하는 학점을 결정하고 fmt.Println
함수를 사용하여 학점을 출력합니다.
이제 switch
문을 사용한 예제를 살펴보겠습니다:
package main
import (
"fmt"
)
func main() {
var score int
fmt.Print("점수를 입력하세요: ")
fmt.Scan(&score)
switch {
case score >= 90:
fmt.Println("학점: A")
case score >= 80:
fmt.Println("학점: B")
case score >= 70:
fmt.Println("학점: C")
case score >= 60:
fmt.Println("학점: D")
default:
fmt.Println("학점: F")
}
}
switch
문을 사용한 예제에서 코드 구조가 더 간결하고 명확합니다. 여러 연속적인 if
및 else if
문을 사용할 필요가 없으며, 대신 switch
다음의 각 case
에 조건을 직접 지정합니다. 이전 case
의 조건에 맞지 않는 점수는 자동으로 다음 case
로 이동하여 해당하는 조건 부분에 일치하거나 default
케이스에 도달할 때까지 반복됩니다. default
케이스는 F
학점을 출력합니다.
이제 if
문과 switch
문을 사용하여 조건부 판단을 할 수 있게 되었으니, 여러분만의 프로그램을 작성하고 연습하여 실력을 늘려보세요.
다음 섹션에서는 Golang의 조건문을 활용하여 실용적인 문제를 소개하여 여러분이 조건문을 잘 익힐 수 있도록 도와드리겠습니다.
위 코드는 교육용 목적으로 제공된 것으로, 실제 응용 프로그램에서는 사용자 상호작용 및 오류 처리 등의 요소를 고려하여 더 견고하게 만들어져야 합니다.