Menu
Coddy logo textTech

`fallthrough`를 사용한 Switch 문

Coddy GO 여정의 로직 & 흐름 섹션에 포함된 레슨 — 68개 중 1번째.

Go에서 switch 문은 보통 일치하는 케이스만 실행하고 자동으로 종료됩니다. 하지만 fallthrough 키워드는 일치 여부와 상관없이 다음 케이스로 실행을 계속하도록 강제함으로써 이 동작을 변경합니다.

case 끝에 fallthrough를 사용하면, Go는 조건을 확인하지 않고 다음 case의 코드를 실행합니다. 이는 fallthrough를 방지하기 위해 break가 필요한 C와 같은 언어와는 다릅니다.

grade := "B"
switch grade {
case "A":
    fmt.Println("Excellent!")
    fallthrough
case "B":
    fmt.Println("Good job!")
    fallthrough
case "C":
    fmt.Println("Keep trying!")
}

이 예제에서 grade가 "B"이면, fallthrough 문으로 인해 "Good job!"과 "Keep trying!"이 모두 출력됩니다. 이를 통해 단일 일치 케이스에 대해 여러 관련 작업을 실행할 수 있습니다.

challenge icon

챌린지

쉬움

이 챌린지에서는 switch 문에서 fallthrough 키워드를 사용하여 우선순위 경고 시스템을 만드는 연습을 합니다. 높은 우선순위의 경고가 발생하면 시스템은 여러 경고 메시지를 순차적으로 표시해야 합니다.

경고 수준을 나타내는 문자열 입력을 받게 됩니다. 서로 다른 경고 수준을 처리하고 fallthrough를 사용하여 우선순위가 높은 경고에 대해 계단식 메시지를 표시하는 switch 문을 작성하세요.

입력은 "critical", "high", "medium", "low" 중 하나입니다.

switch 문은 다음과 같이 작동해야 합니다:

  • "critical"인 경우: "CRITICAL: System shutdown imminent!"을 출력하고 fall through 하여 높은 우선순위 메시지도 출력합니다.
  • "high"인 경우: "HIGH: Immediate attention required!"를 출력하고 fall through 하여 중간 우선순위 메시지도 출력합니다.
  • "medium"인 경우: "MEDIUM: Please review when possible"을 출력합니다.
  • "low"인 경우: "LOW: Informational only"를 출력합니다.

fallthrough 키워드를 사용하여 critical 경고는 critical 및 high 우선순위 메시지를 모두 표시하고, high 경고는 high 및 medium 우선순위 메시지를 모두 표시하도록 하세요.

직접 해보기

package main

import "fmt"

func main() {
    // 입력 읽기
    var alertLevel string
    fmt.Scanln(&alertLevel)
    
    // TODO: 아래에 코드를 작성하세요
    // 경보 시스템을 위한 fallthrough가 포함된 switch 문을 생성하세요
    
}
quiz icon실력 점검

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

로직 & 흐름의 모든 레슨