Nested Switch Statements
Часть раздела Логика и управление потоком путешествия по C# на Coddy — урок 11 из 66.
Вложенные операторы 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;
}Всегда включайте операторы break, чтобы предотвратить проваливание в следующий case.
Помните, чтобы сохранять свой код читаемым с помощью правильных отступов.
Задание
СреднеСоздайте метод с названием 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 внутрь другого для сложной логики принятия решений:
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;
}Всегда включайте операторы break, чтобы предотвратить проваливание в следующий case и поддерживать правильные отступы для читаемости.
Попробуйте сами
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