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 dodawaj instrukcje break, aby zapobiec przechodzeniu do następnego przypadku.
Pamiętaj, aby dbać o czytelność kodu, stosując prawidłowe 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 następujących reguł:
- Dla elektroniki:
- Basic: Dodaj $50 do ceny bazowej
- Premium: Dodaj $100 do ceny bazowej
- Luxury: Dodaj $250 do ceny bazowej
- Dla odzieży:
- Basic: Dodaj $10 do ceny bazowej
- Premium: Dodaj $50 do ceny bazowej
- Luxury: Dodaj $100 do ceny bazowej
- Dla żywności:
- Basic: Nie zmieniaj ceny bazowej
- Premium: Dodaj $15 do ceny bazowej
- Luxury: Dodaj $30 do ceny bazowej
- W przypadku każdego innego typu produktu lub poziomu zwróć niezmienioną cenę bazową
- Dla elektroniki:
Spróbuj swoich sił
public class CalculatePrice
{
// Zaimplementuj metodę calculatePrice
public static int calculatePrice(string productType, string productTier, int basePrice)
{
// Wpisz 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