7.2. 프로그램언어 고(Go)의 switch문

프로그램언어 고(Go)의 switch문의 구조

프로그램언어 고(Go)의 switch문은 다음과 같은 구조를 가집니다.

switch 변수 {
case 값1:
    실행문1
case 값2:
    실행문2
default: 
    실행문3
}

switch문은 변수의 값에 따라 실행 path를 변경하는 제어문입니다. 즉, case별로 실행문을 분기할 수 있습니다. 변수의 값과 일치하는 case를 만나면 해당 실행문을 실행합니다.

구체적으로 살펴보면 다음과 같습니다.

1. switch 뒤에 검사할 변수를 지정합니다.
2. case는 검사할 값을 나타냅니다. 변수의 값과 일치하는 case를 찾습니다.

3. 일치하는 case를 찾으면 해당 case 아래 실행문을 실행합니다.
4. 일치하는 case가 없고 default가 있다면 default 아래 실행문을 실행합니다.
5. 실행이 완료되면 switch문을 빠져나갑니다.

예를 들어 다음과 같은 코드가 있다고 합시다.

score := 90
switch score {
case 90: 
    fmt.Println("수") 
case 80:
    fmt.Println("우")
case 70:
    fmt.Println("미")  
default:
    fmt.Println("가나다")
}

위 코드는 score 변수의 값이 90이기 때문에 case 90과 일치합니다.
따라서 “수”가 출력되고 switch문을 빠져나갑니다.

switch문에 break문을 사용할 필요가 없습니다.
일치하는 case가 실행되면 자동으로 switch문을 빠져나가기 때문입니다.
하지만 특정 case에서 실행문을 실행한 뒤 계속 다음 case의 실행문도 실행하고 싶다면,

fallthrough문을 사용할 수 있습니다.

이상으로 프로그램언어 고(Go)의 switch문에 대해 간략히 설명드렸습니다.
공부에 참고가 되었으면 합니다.
항상 건강과 행복이 가득하시길 빕니다.

프로그램언어 고(Go)에서의 switch문의 기본적인 사용법

고(Go)언어의 switch문 사용법에 대해 설명드리겠습니다.

switch문은 조건문의 일종으로, 변수의 값에 따라 실행할 코드 블록을 선택하는 제어 구문입니다.

switch 변수 {
case 값1:
    문장1 실행
case 값2:
    문장2 실행
default:
    값과 일치하는 case가 없을 때 실행
}

switch문의 기본 구조는 위와 같습니다. switch와 case의 실행 흐름은 아래와 같습니다.

1. switch에 지정된 변수의 값을 확인합니다.

2. case 값과 일치하는 경우에 해당하는 case 블록 안의 문장을 실행합니다.

3. 실행 후 switch문을 종료합니다.

4. 값과 일치하는 case가 없고 default가 지정되어 있다면 default 블록 안의 문장을 실행합니다.

주요 특징으로는 다음과 같은 것들이 있습니다.

– 변수 타입은 정수, 문자, 문자열 등 가능
– break를 사용하지 않아도 암묵적으로 case마다의 블록이 종료
– default는 선택적 사항

다음은 switch문 사용 예시입니다.


rank := "금메달"

switch rank {
case "금메달": 
    fmt.Println("축하합니다!")
case "은메달":
    fmt.Println("잘했습니다")  
default:
    fmt.Println("안타깝습니다")  
}

위 코드에서 변수 rank의 값에 따라 적절한 메시지가 출력되는 것을 확인하실 수 있습니다.

switch문은 조건문의 한 종류로써 값에 따른 흐름 제어에 유용하게 사용됩니다. break 문을 사용하지 않아도 자동으로 case 블록이 종료되므로 편리합니다.

이상으로 고(Go)언어의 switch문 사용법에 대해 간략히 설명드렸습니다. 예제와 함께 좀 더 자세히 이해하실 수 있으리라 믿습니다.

프로그램언어 고(Go)에서의 switch문에서의 다양한 case처리


package main

import "fmt"

func main() {
    grade := "A"

    switch grade {
    case "A", "a": 
        fmt.Println("우수한 성적!")
    case "B", "b":
        fmt.Println("매우 좋은 성적!") 
    case "C", "c":
        fmt.Println("보통 성적")
    default:
        fmt.Println("성적이 낮음")
    }
}

Go언어의 switch문은 C/C++, Java등의 switch문과 유사합니다.

하지만 Go언어의 switch문은 보다 간결하고 유연합니다.

우선, Go언어의 switch문은 case에 해당하는 변수의 타입을 자동으로 인식합니다. 따라서 break문을 사용하지 않아도 됩니다.

또한, case에서 상수뿐만 아니라 조건문도 사용 가능합니다.

예를 들어 위 예제 코드에서 case “A”, “a”처럼 여러 조건을 동시에 사용할 수 있습니다.

따라서 다양한 조건을 보다 유연하게 처리할 수 있습니다.

마지막으로, default case문은 선택적으로 사용 가능합니다.

위 예제에서처럼 default case를 사용하지 않아도 컴파일 에러가 발생하지 않습니다.

이처럼 Go언어의 switch문은 간결하면서도 유연한 조건문 입니다.

변수의 타입을 자동으로 인식하고, case에 다양한 조건사용이 가능하며, break문이 없어도 실행이 중단됩니다.

따라서 코드가 보다 간결해지고 가독성도 높아집니다.

위와 같은 이유로 Go언어의 switch문은 다양한 조건문 상황에 유용하게 사용될 수 있습니다.

프로그램언어 고(Go)의 switch문에서의 fallthrough 키워드 사용법

Go 언어의 switch문에서 fallthrough 키워드는 case 절을 빠져나가지 않고 다음 case 절로 넘어가게 하는 기능을 합니다.

일반적으로 switch문의 case 절을 실행한 후에는 break 문을 만나거나 switch 블록의 끝을 만나면 switch문을 빠져나오게 됩니다.

하지만 fallthrough 키워드를 사용하면 break 문 없이도 다음 case 절로 순차적으로 흘러 들어가게 됩니다.


package main

import "fmt"

func main() {
  num := 3
  
  switch num {
  case 1:
    fmt.Println("1번 case")
    fallthrough
  case 2:
    fmt.Println("2번 case") 
    fallthrough  
  case 3:
    fmt.Println("3번 case")
  default:  
    fmt.Println("default")
  }
}

위의 코드에서 num 변수값은 3입니다.

3번 case에서 fallthrough 키워드를 사용했기 때문에 3번 출력문을 수행한 후에도 switch문을 벗어나지 않고 계속 실행됩니다.

따라서 결과는 다음과 같습니다.

3번 case
default

fallthrough를 사용하지 않으면 3번 case 만 출력되고 switch문을 빠져나왔을 것입니다.

이처럼 Go언어의 fallthrough는 break 문 없이도 다음 case로 순차적으로 흘러들어가기 위해 사용하는 키워드입니다.

주의할 점은 마지막 case문 다음에 default case가 있더라도 fallthrough로 인해 default case도 실행된다는 것입니다.

또한 fallthrough는 해당 case블럭 내의 모든 문장을 실행한 후 다음 case로 넘어갑니다.

즉, case문 내에 fallthrough 아래쪽에 있는 문장들도 수행하고 다음 case로 진입합니다.

프로그램언어 고(Go)의 switch문에서의 default case 처리 방법

Go언어의 switch문에서 default case는 생략이 가능합니다. default case를 명시적으로 작성하지 않으면 아무 동작도 수행하지 않습니다.

하지만 default case를 사용하는 것이 일반적입니다. 이를 통해 switch문에서 처리되지 않는 모든 경우를 대비할 수 있기 때문입니다.

예를 들어 다음과 같은 코드가 있다고 합시다.


package main

import "fmt"

func main() {
    num := 10
    
    switch num {
    case 5:
        fmt.Println("5입니다")
    case 10: 
        fmt.Println("10입니다") 
    }
}

이 코드에서 num 변수에는 10이 할당되어 있습니다. switch문에서는 case 5와 case 10을 확인합니다.

num이 10과 일치하므로 “10입니다”가 출력됩니다.

여기에 default case를 추가해보겠습니다.


package main

import "fmt"

func main() {
    num := 10
    
    switch num {
    case 5:
        fmt.Println("5입니다")
    case 10:
        fmt.Println("10입니다")
    default:
        fmt.Println("5나 10이 아닙니다")
    }
}

이제 num 변수의 값에 따라 “10입니다” 또는 “5나 10이 아닙니다”가 출력됩니다.

switch문의 조건식과 일치하는 case가 없는 경우 default가 실행됩니다. 따라서 예상 가능한 모든 경우를 처리할 수 있도록 default case를 사용하는 것이 좋습니다.

이를 통해 예기치 못한 문제를 방지하고 보다 안정적인 코드를 작성할 수 있습니다. 불필요한 실행 오류를 줄이고 가독성도 높여줍니다.

switch문 사용 시 기본적으로 모든 경우의 수를 고려하여 default문을 작성하는 습관을 가지시기 바랍니다.

설명이 이해에 도움이 되셨기를 바랍니다.

Leave a Comment