Menu
Coddy logo textTech

표현식이 있는 Switch

Coddy GO 여정의 기초 섹션에 포함된 레슨 — 109개 중 40번째.

Go에서 switch 표현식에 대해 배워봅시다. 이는 switch 문에서 값을 직접 평가할 수 있게 해줍니다.

먼저, 숫자가 양수인지, 음수인지, 아니면 0인지 확인하기 위해 표현식과 함께 switch 문을 사용하는 방법을 살펴보겠습니다:

num := -5
switch {
case num > 0:
    fmt.Println("Positive number")
case num < 0:
    fmt.Println("Negative number")
default:
    fmt.Println("Zero")
}

이 코드를 실행하면, 프로그램은 화면에 다음과 같이 표시합니다:

Negative number

우리는 switch { 뒤에 아무런 값도 없이 사용하고 있음에 주목하십시오. 이는 Go가 각 case 표현식을 불리언(boolean) 조건으로 평가함을 의미합니다. num이 -5이므로, 두 번째 case인 num < 0이 true로 평가되어 "Negative number"가 출력됩니다.

또한 switch 문 내에서 바로 변수를 초기화할 수도 있습니다. 어떻게 작동하는지 살펴봅시다:

switch num := -5; {
case num > 0:
    fmt.Println("Positive number")
case num < 0:
    fmt.Println("Negative number")
default:
    fmt.Println("Zero")
}

이 코드를 실행하면 동일한 결과를 얻습니다:

Negative number

이 예제에서는 num을 switch 문에서 직접 선언하고 초기화했습니다. 세미콜론은 초기화 부분과 switch 표현식(여기서는 비어 있음)을 구분합니다. 이렇게 하면 동일한 기능을 유지하면서 코드를 더 간결하게 만들 수 있습니다.

challenge icon

챌린지

초급
이 챌린지에서는 Go에서 간단한 switch 표현식을 사용하는 연습을 합니다. switch 문을 사용하여 요일 이름에 따라 요일에 대한 설명을 결정하도록 코드를 완성해야 합니다.

dayName 변수는 이미 "Wednesday"라는 값으로 정의되어 있습니다. 여러분의 작업은 switch 표현식을 사용하여 description 변수를 다음과 같이 설정하는 것입니다.
- Monday인 경우 "Start of the week"
- Wednesday인 경우 "Midweek"
- Friday인 경우 "Almost weekend"
- Saturday 또는 Sunday인 경우 "Weekend"
- 그 외 다른 날인 경우 "Regular day"

치트 시트

Go의 switch 표현식을 사용하면 switch 문에서 직접 조건을 평가할 수 있습니다.

각 case에서 불리언(boolean) 표현식을 평가하려면 값이 없는 switch {를 사용하세요:

num := -5
switch {
case num > 0:
    fmt.Println("Positive number")
case num < 0:
    fmt.Println("Negative number")
default:
    fmt.Println("Zero")
}

세미콜론을 사용하여 초기화와 switch 표현식을 구분함으로써 switch 문 내에서 직접 변수를 초기화할 수 있습니다:

switch num := -5; {
case num > 0:
    fmt.Println("Positive number")
case num < 0:
    fmt.Println("Negative number")
default:
    fmt.Println("Zero")
}

직접 해보기

package main

import "fmt"

func main() {
	// 요일 이름이 이미 정의되어 있습니다
	dayName := "Wednesday"
	
	// 설명을 저장할 변수
	var description string
	
	// TODO: dayName에 따라 설명을 설정하는 switch 문을 작성하세요
	// Monday의 경우: "Start of the week"
	// Wednesday의 경우: "Midweek"
	// Friday의 경우: "Almost weekend"
	// Saturday 또는 Sunday의 경우: "Weekend"
	// 그 외 다른 날의 경우: "Regular day"
	
	
	// 결과 출력
	fmt.Printf("%s is %s\n", dayName, description)
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨