🔥 if와 else

260자
3분

Go 언어에서는 ifelse 문을 사용하여 조건에 따라 코드의 실행 흐름을 제어할 수 있습니다. if 문 안에서 선언한 변수는 else 블록 내에서도 사용할 수 있어요. 이를 잘 활용하면 코드를 더욱 간결하고 읽기 쉽게 작성할 수 있습니다.

아래 예제 코드를 통해 ifelse 문의 사용법을 자세히 살펴볼게요.

package main
 
import (
    "fmt"
    "math"
)
 
func pow(x, n, lim float64) float64 {
    if v := math.Pow(x, n); v < lim {
        return v
    } else {
        fmt.Printf("%g >= %g\n", v, lim)
    }
    // v는 여기서 사용할 수 없습니다.
    return lim
}
 
func main() {
    fmt.Println(
        pow(3, 2, 10),
        pow(3, 3, 20),
    )
}
 
go

위 코드에서 pow 함수는 세 개의 float64 타입 매개변수 x, n, lim을 받아요. 함수 내부에서는 다음과 같은 일이 일어납니다.

  1. if 문의 조건에서 v := math.Pow(x, n)을 사용하여 xn제곱 값을 계산하고, 그 결과를 v라는 변수에 할당해요.
  2. 만약 vlim보다 작으면 v를 반환합니다.
  3. 그렇지 않고 vlim보다 크거나 같으면 else 블록이 실행되어 "%g >= %g\n" 형식으로 vlim을 출력해요.
  4. else 블록 밖에서는 v를 사용할 수 없으므로, lim을 반환합니다.

main 함수에서는 pow 함수를 두 번 호출하여 그 결과를 출력해요.

  1. 첫 번째 호출에서는 pow(3, 2, 10)을 실행하여 3의 2제곱인 9를 반환합니다. 9는 10보다 작으므로 if 블록이 실행되어 9를 반환해요.
  2. 두 번째 호출에서는 pow(3, 3, 20)을 실행하여 3의 3제곱인 27을 계산합니다. 27은 20보다 크므로 else 블록이 실행되어 "27 >= 20"을 출력하고, lim인 20을 반환해요.

이처럼 ifelse 문을 사용하면 조건에 따라 코드의 실행 흐름을 쉽게 제어할 수 있습니다. 또한, if 문에서 선언한 변수를 else 블록에서도 사용할 수 있어 코드를 간결하게 작성할 수 있습니다.