JavaScript - obudowa przełącznika
Możesz użyć wielu plików if...else…ifinstrukcje, podobnie jak w poprzednim rozdziale, do wykonania gałęzi wielodrogowej. Jednak nie zawsze jest to najlepsze rozwiązanie, zwłaszcza gdy wszystkie gałęzie zależą od wartości jednej zmiennej.
Począwszy od JavaScript 1.2, możesz użyć pliku switch oświadczenie, które obsługuje dokładnie tę sytuację i robi to wydajniej niż powtarzane if...else if sprawozdania.
Schemat blokowy
Poniższy schemat blokowy wyjaśnia działanie instrukcji przełącznika.
Składnia
Celem a switchinstrukcja ma dać wyrażenie do oceny i kilka różnych instrukcji do wykonania na podstawie wartości wyrażenia. Tłumacz sprawdza każdegocasewzględem wartości wyrażenia, aż do znalezienia dopasowania. Jeśli nic nie pasuje, adefault stan będzie używany.
switch (expression) {
case condition 1: statement(s)
break;
case condition 2: statement(s)
break;
...
case condition n: statement(s)
break;
default: statement(s)
}
Plik breakoświadczenia wskazują koniec konkretnej sprawy. Gdyby zostały pominięte, tłumacz kontynuowałby wykonywanie każdej instrukcji w każdym z poniższych przypadków.
Wyjaśnimy break oświadczenie w Loop Control rozdział.
Przykład
Wypróbuj poniższy przykład, aby zaimplementować instrukcję switch-case.
<html>
<body>
<script type = "text/javascript">
<!--
var grade = 'A';
document.write("Entering switch block<br />");
switch (grade) {
case 'A': document.write("Good job<br />");
break;
case 'B': document.write("Pretty good<br />");
break;
case 'C': document.write("Passed<br />");
break;
case 'D': document.write("Not so good<br />");
break;
case 'F': document.write("Failed<br />");
break;
default: document.write("Unknown grade<br />")
}
document.write("Exiting switch block");
//-->
</script>
<p>Set the variable to different value and then try...</p>
</body>
</html>
Wynik
Entering switch block
Good job
Exiting switch block
Set the variable to different value and then try...
Instrukcje przerwania odgrywają główną rolę w instrukcjach przełączania przypadków. Wypróbuj poniższy kod, który używa instrukcji switch-case bez żadnej instrukcji break.
<html>
<body>
<script type = "text/javascript">
<!--
var grade = 'A';
document.write("Entering switch block<br />");
switch (grade) {
case 'A': document.write("Good job<br />");
case 'B': document.write("Pretty good<br />");
case 'C': document.write("Passed<br />");
case 'D': document.write("Not so good<br />");
case 'F': document.write("Failed<br />");
default: document.write("Unknown grade<br />")
}
document.write("Exiting switch block");
//-->
</script>
<p>Set the variable to different value and then try...</p>
</body>
</html>
Wynik
Entering switch block
Good job
Pretty good
Passed
Not so good
Failed
Unknown grade
Exiting switch block
Set the variable to different value and then try...