Nested Switch Statements
Coddy'nin C# Journey'sinin Mantık & Akış bölümünün bir parçası — ders 11 / 66.
İç içe switch deyimleri, bir switch deyimini başka birinin içine yerleştirerek daha karmaşık karar verme işlemleri yapmanızı sağlar.
Temel bir iç içe switch oluşturun:
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;
}Sonraki case'e akışın devam etmesini önlemek için her zaman break deyimleri ekleyin.
Kodunuzu okunabilir tutmak için uygun girintileme kullanmayı unutmayın.
Görev
OrtacalculatePrice adında bir metot oluşturun ki:
- Üç parametre alsın:
- productType (string): "Electronics", "Clothing" ya da "Food"
- productTier (string): "Basic", "Premium" ya da "Luxury"
- basePrice (int): Ürünün başlangıç fiyatı
- Bu kuralları uyguladıktan sonra nihai fiyatı (int) döndürsün:
- Electronics için:
- Basic: Temel fiyata $50 ekleyin
- Premium: Temel fiyata $100 ekleyin
- Luxury: Temel fiyata $250 ekleyin
- Clothing için:
- Basic: Temel fiyata $10 ekleyin
- Premium: Temel fiyata $50 ekleyin
- Luxury: Temel fiyata $100 ekleyin
- Food için:
- Basic: Temel fiyata değişiklik yok
- Premium: Temel fiyata $15 ekleyin
- Luxury: Temel fiyata $30 ekleyin
- Herhangi bir diğer ürün tipi veya katman için, temel fiyatı değiştirmeden döndürün
- Electronics için:
Kopya kağıdı
İç içe switch deyimleri, karmaşık karar alma işlemleri için bir switch deyimini diğerinin içine yerleştirmenizi sağlar:
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;
}Sonraki case'e akışın devam etmesini (fall-through) önlemek ve okunabilirlik için uygun girintilemeyi korumak amacıyla her zaman break deyimleri ekleyin.
Kendin dene
public class CalculatePrice
{
// calculatePrice metodunu uygulayın
public static int calculatePrice(string productType, string productTier, int basePrice)
{
// Kodu buraya yazın
}
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık & Akış bölümündeki tüm dersler
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