Nested Switch Statements
Parte da seção Lógica & Fluxo do Journey de C# da Coddy — lição 11 de 66.
Instruções switch aninhadas permitem que você coloque uma instrução switch dentro de outra para tomada de decisões mais complexas.
Crie um switch aninhado 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;
}Sempre inclua instruções break para evitar o fall-through para o próximo case.
Lembre-se de manter seu código legível com indentação adequada.
Desafio
MédioCrie um método chamado calculatePrice que:
- Recebe três parâmetros:
- productType (string): Seja "Electronics", "Clothing" ou "Food"
- productTier (string): Seja "Basic", "Premium" ou "Luxury"
- basePrice (int): O preço inicial do produto
- Retorna o preço final (int) após aplicar estas regras:
- Para Electronics:
- Basic: Adicione $50 ao preço base
- Premium: Adicione $100 ao preço base
- Luxury: Adicione $250 ao preço base
- Para Clothing:
- Basic: Adicione $10 ao preço base
- Premium: Adicione $50 ao preço base
- Luxury: Adicione $100 ao preço base
- Para Food:
- Basic: Sem alteração ao preço base
- Premium: Adicione $15 ao preço base
- Luxury: Adicione $30 ao preço base
- Para qualquer outro tipo de produto ou nível, retorne o preço base inalterado
- Para Electronics:
Folha de consulta
Instruções switch aninhadas permitem que você coloque uma instrução switch dentro de outra para tomada de decisões complexas:
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;
}Sempre inclua instruções break para evitar a continuação para o próximo case e manter a indentação adequada para legibilidade.
Experimente você mesmo
public class CalculatePrice
{
// Implemente o método calculatePrice
public static int calculatePrice(string productType, string productTier, int basePrice)
{
// Escreva seu código aqui
}
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica & Fluxo
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