Zagnieżdżone instrukcje switch
Część sekcji Logika i sterowanie przepływem ścieżki C# w Coddy. Lekcja 11 z 66.
Zagnieżdżone instrukcje switch pozwalają umieścić jedną instrukcję switch wewnątrz drugiej, aby podejmować bardziej złożone decyzje.
Utwórz podstawową zagnieżdżoną instrukcję 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;
}Zawsze umieszczaj instrukcje break, aby zapobiec przejściu do następnego przypadku.
Pamiętaj, aby dbać o czytelność kodu, stosując odpowiednie wcięcia.
Wyzwanie
ŚredniUtwórz metodę o nazwie calculatePrice, która:
- Przyjmuje trzy parametry:
- productType (string): "Electronics", "Clothing" lub "Food"
- productTier (string): "Basic", "Premium" lub "Luxury"
- basePrice (int): Cena początkowa produktu
- Zwraca cenę końcową (int) po zastosowaniu tych zasad:
- Dla elektroniki:
- Basic: Dodaj 50 $ do ceny początkowej
- Premium: Dodaj 100 $ do ceny początkowej
- Luxury: Dodaj 250 $ do ceny początkowej
- Dla odzieży:
- Basic: Dodaj 10 $ do ceny początkowej
- Premium: Dodaj 50 $ do ceny początkowej
- Luxury: Dodaj 100 $ do ceny początkowej
- Dla żywności:
- Basic: Nie zmieniaj ceny początkowej
- Premium: Dodaj 15 $ do ceny początkowej
- Luxury: Dodaj 30 $ do ceny początkowej
- W przypadku każdego innego typu lub poziomu produktu zwróć cenę początkową bez zmian
- Dla elektroniki:
Spróbuj swoich sił
public class CalculatePrice
{
// Zaimplementuj metodę calculatePrice
public static int calculatePrice(string productType, string productTier, int basePrice)
{
// Napisz tutaj swój kod
}
}Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i sterowanie przepływem
1Tablice wielowymiarowe
Podstawy tablic 2DDeklarowanie i inicjalizacja tablic 2DDostęp do elementów tablic 2DZagnieżdżone pętle z tablicami 2DTablice postrzępionePodstawowe operacje na macierzachPodsumowanie — tablice wielowymiarowe4Techniki sterowania przepływem
Wczesne zwrotyKlauzule ochronneInstrukcje skoku (goto)Break i continueSpłaszczanie zagnieżdżonych warunków7Zaawansowane operatory logiczne
Ewaluacja z krótkim spięciemWarunkowe operatory logicznePriorytet operatorówPowtórzenie — zaawansowane operatory2Zaawansowane podejmowanie decyzji
Wiele warunkówZłożona logika Boole’aPorównanie if i switchZagnieżdżone instrukcje switchPodsumowanie — zaawansowane decyzje5Obsługa wyjątków
Podstawy try-catchTypy wyjątkówWiele bloków catchPraca z plikamiBlok finallyusing a try-finallyWłasne wyjątkiPowtórzenie — obsługa błędów3Udoskonalenia pętli
Wydajność pętliIterowanie po złożonych strukturachKażdy typ pętliRefaktoryzacja pętliPodsumowanie — zoptymalizowane pętle6Obsługa wartości null
Podstawy referencji nullTypy wartości dopuszczające nullWzorce sprawdzania nullProgramowanie defensywnePodsumowanie — bezpieczeństwo nullPoćwicz samodzielnie: Kompilator C# online