`fallthrough`를 사용한 Switch 문
Coddy GO 여정의 로직 & 흐름 섹션에 포함된 레슨. 68개 중 1번째.
Go에서 switch 문은 일반적으로 일치하는 case만 실행한 다음 자동으로 종료됩니다. 그러나 fallthrough 키워드는 일치하는지 여부와 관계없이 다음 case로 실행을 계속하도록 강제하여 이러한 동작을 변경합니다.
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!"을 모두 출력합니다. 이를 통해 하나의 일치하는 case에 대해 서로 관련된 여러 작업을 실행할 수 있습니다.
챌린지
쉬움이 챌린지에서는 fallthrough 키워드를 switch 문에서 사용하여 우선순위 알림 시스템을 만드는 연습을 합니다. 높은 우선순위의 알림이 트리거되면 시스템은 여러 경고 메시지를 순서대로 표시해야 합니다.
알림 수준을 나타내는 문자열 입력을 받게 됩니다. 다양한 알림 수준을 처리하고 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 문 작성
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
로직 & 흐름의 모든 레슨
직접 연습해 보세요: 온라인 Go 컴파일러