Nested Switch Statements
Parte de la sección Lógica y Flujo del Journey de C# de Coddy — lección 11 de 66.
Las sentencias switch anidadas te permiten colocar una sentencia switch dentro de otra para una toma de decisiones más compleja.
Crea un switch anidado básico:
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;
}Siempre incluya sentencias break para evitar el fall-through al siguiente case.
Recuerda mantener tu código legible con la indentación adecuada.
Desafío
IntermedioCrea un método llamado calculatePrice que:
- Toma tres parámetros:
- productType (string): "Electronics", "Clothing" o "Food"
- productTier (string): "Basic", "Premium" o "Luxury"
- basePrice (int): El precio inicial del producto
- Devuelve el precio final (int) después de aplicar estas reglas:
- Para Electronics:
- Basic: Añade $50 al precio base
- Premium: Añade $100 al precio base
- Luxury: Añade $250 al precio base
- Para Clothing:
- Basic: Añade $10 al precio base
- Premium: Añade $50 al precio base
- Luxury: Añade $100 al precio base
- Para Food:
- Basic: Sin cambios al precio base
- Premium: Añade $15 al precio base
- Luxury: Añade $30 al precio base
- Para cualquier otro tipo de producto o nivel, devuelve el precio base sin cambios
- Para Electronics:
Hoja de referencia
Las declaraciones switch anidadas permiten colocar una declaración switch dentro de otra para la toma de decisiones compleja:
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;
}Siempre incluya sentencias break para evitar el paso al siguiente caso y mantener una indentación adecuada para mejorar la legibilidad.
Pruébalo tú mismo
public class CalculatePrice
{
// Implementa el método calculatePrice
public static int calculatePrice(string productType, string productTier, int basePrice)
{
// Escribe tu código aquí
}
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
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