`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!"이 모두 출력됩니다. 이를 통해 단일 일치 케이스에 대해 여러 관련 작업을 실행할 수 있습니다.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
챌린지
쉬움이 챌린지에서는 switch 문에서 fallthrough 키워드를 사용하여 우선순위 알림 시스템을 만드는 연습을 합니다. 높은 우선순위의 알림이 발생하면 시스템은 순차적으로 여러 경고 메시지를 표시해야 합니다.
알림 레벨을 나타내는 문자열 입력을 받게 됩니다. 다양한 알림 레벨을 처리하고 fallthrough를 사용하여 높은 우선순위 알림에 대해 계단식 메시지를 표시하는 switch 문을 작성하세요.
입력은 "critical", "high", "medium", 또는 "low" 중 하나입니다.
switch 문은 다음과 같이 작동해야 합니다:
"critical"인 경우: "CRITICAL: System shutdown imminent!"를 출력하고 fall through 하여 high 우선순위 메시지도 함께 출력합니다."high"인 경우: "HIGH: Immediate attention required!"를 출력하고 fall through 하여 medium 우선순위 메시지도 함께 출력합니다."medium"인 경우: "MEDIUM: Please review when possible"을 출력합니다."low"인 경우: "LOW: Informational only"를 출력합니다.
fallthrough 키워드를 사용하여 critical 알림은 critical 및 high 우선순위 메시지를 모두 표시하고, high 알림은 high 및 medium 우선순위 메시지를 모두 표시하도록 하세요.
치트 시트
Go의 switch 문에서 fallthrough 키워드는 조건을 확인하지 않고 다음 case로 실행을 계속하도록 강제합니다:
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!"이 모두 출력됩니다. C와 같은 언어와 달리, Go의 switch 문은 fallthrough를 사용하지 않는 한 일치하는 case 이후에 자동으로 종료됩니다.
직접 해보기
package main
import "fmt"
func main() {
// 입력 읽기
var alertLevel string
fmt.Scanln(&alertLevel)
// TODO: 아래에 코드를 작성하세요
// 경보 시스템을 위한 fallthrough가 포함된 switch 문을 작성하세요
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.