Nested Switch Statements
Coddy C# 여정의 논리 및 흐름 섹션에 포함된 레슨 — 66개 중 11번째.
중첩된 switch 문은 더 복잡한 의사 결정을 위해 하나의 switch 문을 다른 switch 문 안에 배치할 수 있게 합니다.
기본 중첩 switch 만들기:
string department = "Sales";
string level = "Senior";
switch (department)
{
case "Sales":
switch (level)
{
case "Junior":
Console.WriteLine("Sales Junior");
break;
case "Senior":
Console.WriteLine("Sales Senior");
break;
}
break;
case "IT":
switch (level)
{
case "Junior":
Console.WriteLine("IT Junior");
break;
case "Senior":
Console.WriteLine("IT Senior");
break;
}
break;
}다음 case로의 fall-through를 방지하기 위해 항상 break 문을 포함하세요.
코드를 읽기 쉽게 하기 위해 적절한 들여쓰기를 유지하세요.
챌린지
중급calculatePrice라는 메서드를 생성하세요:
- 세 개의 매개변수를 받습니다:
- productType (string): "Electronics", "Clothing", 또는 "Food" 중 하나
- productTier (string): "Basic", "Premium", 또는 "Luxury" 중 하나
- basePrice (int): 제품의 기본 가격
- 다음 규칙을 적용한 후 최종 가격 (int)을 반환합니다:
- Electronics의 경우:
- Basic: 기본 가격에 $50 추가
- Premium: 기본 가격에 $100 추가
- Luxury: 기본 가격에 $250 추가
- Clothing의 경우:
- Basic: 기본 가격에 $10 추가
- Premium: 기본 가격에 $50 추가
- Luxury: 기본 가격에 $100 추가
- Food의 경우:
- Basic: 기본 가격 변경 없음
- Premium: 기본 가격에 $15 추가
- Luxury: 기본 가격에 $30 추가
- 기타 제품 유형이나 등급의 경우, 기본 가격을 변경하지 않고 반환
- Electronics의 경우:
치트 시트
중첩된 switch 문은 복잡한 의사 결정을 위해 하나의 switch 문을 다른 switch 문 안에 배치할 수 있게 합니다:
string department = "Sales";
string level = "Senior";
switch (department)
{
case "Sales":
switch (level)
{
case "Junior":
Console.WriteLine("Sales Junior");
break;
case "Senior":
Console.WriteLine("Sales Senior");
break;
}
break;
case "IT":
switch (level)
{
case "Junior":
Console.WriteLine("IT Junior");
break;
case "Senior":
Console.WriteLine("IT Senior");
break;
}
break;
}다음 case로의 fall-through를 방지하고 가독성을 위해 적절한 들여쓰기를 유지하기 위해 break 문을 항상 포함하세요.
직접 해보기
public class CalculatePrice
{
// calculatePrice 메서드를 구현하세요
public static int calculatePrice(string productType, string productTier, int basePrice)
{
// 여기에 코드를 작성하세요
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리 및 흐름의 모든 레슨
1Multi-dimensional Arrays
2D Arrays BasicsDeclaring and Initializing 2DAccessing 2D Array ElementsNested Loops with 2D ArraysJagged ArraysCommon Matrix OperationsRecap - Multi-dimensional4Flow Control Techniques
Early ReturnsGuard ClausesJump Statements (goto)Break and ContinueFlatten Nested Conditionals7Logical Operators Advanced
Short-Circuit EvaluationConditional Logical OperatorsOperator PrecedenceRecap - Advanced Operators2Advanced Decision Making
Multiple ConditionsComplex Boolean LogicIf vs. Switch ComparisonNested Switch StatementsRecap - Advanced Decisions5Exception Handling
Try-Catch BasicsException TypesMultiple Catch BlocksWorking with FilesFinally BlockUsing vs. Try-FinallyCustom ExceptionsRecap - Error Handling3Loop Enhancements
Loop PerformanceIterating ComplexEach Loop TypeRefactoring LoopsRecap - Optimized Loops6Null Handling
Null Reference BasicsNullable Value TypesNull Checking PatternsDefensive ProgrammingRecap - Null Safety