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