Korzystanie z instrukcji Switch dla wielu wyborów w Javie

Jeśli twój program Java musi dokonać wyboru między dwoma lub trzema akcjami, an jeśli więc jeszcze komunikat wystarczy. Jednakże jeśli więc jeszcze instrukcja zaczyna być niewygodna, gdy program może dokonać wielu wyborów. Jest tylko tyle inaczej... jeśli instrukcje, które chcesz dodać, zanim kod zacznie wyglądać nieporządnie. Gdy wymagana jest decyzja dotycząca wielu opcji, użyj instrukcji switch.

Instrukcja Switch

Instrukcja switch pozwala programowi na porównanie wartości zmiennej wyrażenie do listy alternatywnych wartości. Wyobraź sobie na przykład, że masz menu rozwijane, które zawiera cyfry od 1 do 4. W zależności od wybranej liczby chcesz, aby Twój program zrobił coś innego:

// powiedzmy, że użytkownik wybiera numer 4
int menuChoice = 4;
przełącznik (menu Wybór)
{
przypadek 1:
JOptionPane.showMessageDialog (null, „Wybrałeś numer 1.”);
przerwa;
przypadek 2:
JOptionPane.showMessageDialog (null, „Wybrałeś numer 2.”);
przerwa;
przypadek 3:
JOptionPane.showMessageDialog (null, „Wybrałeś numer 3.”);
instagram viewer

przerwa;
// Ta opcja zostanie wybrana, ponieważ wartość 4 odpowiada wartości
// zmienna menuChoise
przypadek 4: JOptionPane.showMessageDialog (null, „Wybrałeś numer 4.”); przerwa;
domyślna:
JOptionPane.showMessageDialog (null, „Coś poszło nie tak!”);
przerwa;
}

Jeśli spojrzysz na składnię instrukcji switch, powinieneś zauważyć kilka rzeczy:

1. Zmienna zawierająca wartość, z którą należy porównać, jest umieszczona u góry, w nawiasach kwadratowych.

2. Każda opcja alternatywna zaczyna się od etykiety sprawy. Wartość do porównania z górą zmienna następnie następuje dwukropek. Na przykład przypadek 1: to etykieta sprawy, po której następuje wartość 1 - równie dobrze może to być przypadek 123: lub przypadek -9:. Możesz mieć tyle alternatywnych opcji, ile potrzebujesz.

3. Jeśli spojrzysz na powyższą składnię, podświetlona jest czwarta alternatywna opcja - etykieta sprawy, wykonywany przez nią kod (tj. JOptionPane) i instrukcja break. Instrukcja break sygnalizuje koniec kodu, który należy wykonać. Jeśli spojrzysz, zobaczysz, że każda alternatywa kończy się instrukcją break. Bardzo ważne jest, aby pamiętać o wstawieniu instrukcji break. Rozważ następujący kod:

 // powiedzmy, że użytkownik wybiera numer 1
int menuChoice = 1;
przełącznik (menu Wybór)
przypadek 1:
JOptionPane.showMessageDialog (null, „Wybrałeś numer 1.”);
przypadek 2:
JOptionPane.showMessageDialog (null, „Wybrałeś numer 2.”);
przerwa;
przypadek 3:
JOptionPane.showMessageDialog (null, „Wybrałeś numer 3.”);
przerwa;
przypadek 4:
JOptionPane.showMessageDialog (null, „Wybrałeś numer 4.”);
przerwa;
domyślna:
JOptionPane.showMessageDialog (null, „Coś poszło nie tak!”);
przerwa;
}

To, czego oczekujesz, to zobaczyć Okno dialogowe mówiąc „Wybrałeś numer 1”, ale ponieważ nie ma instrukcji break pasującej do etykiety pierwszej sprawy, kod drugiej etykiety sprawy również zostanie wykonany. Oznacza to, że pojawi się także następne okno dialogowe z napisem „Wybrałeś numer 2”.

4. Na dole instrukcji switch znajduje się domyślna etykieta. To jest jak siatka bezpieczeństwa na wypadek, gdyby żadna z wartości na etykietach nie pasowała do porównywanej wartości. Bardzo użyteczne jest zapewnienie sposobu wykonywania kodu, gdy nie zostanie wybrana żadna z żądanych opcji.

Jeśli zawsze oczekujesz, że zostanie wybrana jedna z pozostałych opcji, możesz pominąć domyślną etykietę, ale umieszczenie jednej na końcu każdej tworzonej instrukcji switch jest dobrym nawykiem. Może się wydawać mało prawdopodobne, że zostanie kiedykolwiek użyty, ale błędy mogą wkradać się do kodu i mogą pomóc w wykryciu błędu.

Od JDK 7

Jedną ze zmian w składni Java z wydaniem JDK 7 jest możliwość korzystania Smyczki w instrukcjach switch. Możliwość porównania wartości ciągu w instrukcji switch może być bardzo przydatna:

Nazwa ciągu = „Bob”;
switch (name.toLowerCase ())
{
sprawa „Joe”:
JOptionPane.showMessageDialog (null, „Dzień dobry Joe!”);
przerwa;
sprawa „michael”:
JOptionPane.showMessageDialog (null, „Jak leci, Michael?”);
przerwa;
sprawa „bob”:
JOptionPane.showMessageDialog (null, „Bob, mój stary przyjacielu!”);
przerwa;
przypadek „billy”:
JOptionPane.showMessageDialog (null, „Afterly Billy, jak tam dzieci?”);
przerwa;
domyślna:
JOptionPane.showMessageDialog (null, „Miło mi cię poznać, John Doe.”);
przerwa;
}

Porównując dwie wartości String, może być o wiele łatwiej, jeśli upewnisz się, że wszystkie są w tym samym przypadku. Użycie metody .toLowerCase oznacza, że ​​mogą znajdować się wszystkie wartości etykiet wielkości liter małe litery.

Rzeczy do zapamiętania na temat instrukcji Switch

• Typ zmiennej, z którą należy porównać, musi być char, bajt, short, int, znak, bajt, short, liczba całkowita, łańcuch lub wyliczenie.

• Wartość obok etykiety sprawy nie może być zmienną. Musi to być ciągłe wyrażenie (np. Literał int, literał char).

• Wartości wyrażeń stałych na wszystkich etykietach wielkości liter muszą być różne. Następujące spowodowałoby błąd czasu kompilacji:

przełącznik (menu Wybór)
{
sprawa 323:
JOptionPane.showMessageDialog (null, „Wybrałeś opcję 1.”);
przerwa;
sprawa 323:
JOptionPane.showMessageDialog (null, „Wybrano opcję 2.”);
przerwa;

• W instrukcji switch może znajdować się tylko jedna etykieta domyślna.

• Korzystając z obiektu do instrukcji switch (np. String, Integer, Character), upewnij się, że nie jest on pusty. Obiekt zerowy spowoduje błąd środowiska wykonawczego podczas wykonywania instrukcji switch.

instagram story viewer