Middle+
Opowiedz o konstrukcji SwitchKeys.
sobes.tech AI
Odpowiedź od AI
Konstrukcja switch, lub case w niektórych językach, jest sposobem wyboru jednej z kilku alternatywnych ścieżek wykonania kodu na podstawie wartości zmiennej lub wyrażenia. Jest to alternatywa dla wielu bloków if-else if.
Główne składniki:
- Wyrażenie/Zmienna: Wartość, która będzie porównywana z każdym
case. case: Każdycasereprezentuje konkretną wartość, z którą porównywane jest wyrażenie. Jeśli wartość się zgadza, wykonywany jest kod wewnątrz tegocase.break: Słowo kluczowe używane do wyjścia z blokuswitchpo wykonaniu odpowiedniegocase. Jeślibreakjest pominięte, wykonanie przechodzi do następnegocase(fall-through).default: Opcjonalny blok, który jest wykonywany, jeśli żaden zcasenie pasuje do wartości wyrażenia.
Przykład w Java:
// Definicja zmiennej
int dayOfWeek = 3;
// Użycie konstrukcji switch
switch (dayOfWeek) {
case 1:
System.out.println("Poniedziałek");
break;
case 2:
System.out.println("Wtorek");
break;
case 3:
System.out.println("Środa");
break;
case 4:
System.out.println("Czwartek");
break;
case 5:
System.out.println("Piątek");
break;
case 6:
System.out.println("Sobota");
break;
case 7:
System.out.println("Niedziela");
break;
default:
System.out.println("Nieprawidłowy dzień");
}
Przykład w Pythonie (analogiczne zachowanie osiągane za pomocą słowników):
# Definicja zmiennej
day_of_week = 3
# Tworzenie słownika do imitacji switch
day_mapping = {
1: "Poniedziałek",
2: "Wtorek",
3: "Środa",
4: "Czwartek",
5: "Piątek",
6: "Sobota",
7: "Niedziela",
}
# Pobranie wartości ze słownika z domyślną wartością
print(day_mapping.get(day_of_week, "Nieprawidłowy dzień"))
Zalety switch w porównaniu do wielu if-else if:
- Czytelność: Często bardziej przejrzysty, gdy jest wiele opcji.
- Wydajność: W niektórych językach kompilator może zoptymalizować
switchdla szybszego wykonania (np. z użyciem tabel skoków).
Wady:
- Ograniczenie typów danych, które można używać w
case(zależy od języka). - Brak możliwości użycia zakresów lub złożonych warunków w
case.
W QA i QA Automation switch może być używany do obsługi różnych stanów, wyników testów, typów danych lub elementów interfejsu użytkownika.