W poprzednim wpisie było o instrukcji warunkowej If (link tutaj). W tym wpisie skupimy się nad instrukcją warunkową Switch. Jest to również instrukcja wyboru, może zostać zastosowana zamiast kilku instrukcji If sprawiając, że kod jest bardziej przejrzysty i łatwiej jest zobaczyć, jakie mamy warunki decyzyjne.
Konstrukcja pętli switch wygląda następująco:
Switch(<wyrażenie>)
{
case <pierwszy_przypadek>:
//kod który będzie się wykonywał
break;
case drugi_przypadek:
//kod który będzie się wykonywał
//kod który będzie się wykonywał
break;
case trzeci_przypadek:
//kod który będzie się wykonywał
break;
/*ilość przypadków jest dowolna*/
default: //może wystąpić, ale nie musi
//kod który będzie się wykonywać jeżeli nie zostanie dopasowane nic wcześniej
break;
}
Przejdźmy do przykładu 🙂
Pierwszy przykład to kawałek kodu napisany w wersji z “if”.
String szkola = liceum
If(szkola == "przedszkole"){
Console.WriteLine("Chodzisz do przedszkola");
}
If(szkola == "podstawowa"){
Console.WriteLine("Chodzisz do szkoły podstawowej");
}
If(szkola == "liceum"){
Console.WriteLine("Chodzisz do liceum");
}
If(szkola == "technikum"){
Console.WriteLine("Chodzisz do technikum");
}
If(szkola == "zawodowa"){
Console.WriteLine("Chodzisz do szkoły zawodowej");
}
If(szkola == "studia"){
Console.WriteLine("Chodzisz na studia");
}else{
Console.WriteLine("Nie wiadomo do jakiej szkoły chodzisz");
}
Teraz zamieńmy to na konstrukcję Switch.
Switch(szkola)
{
Case "przedszkole":
Console.WriteLine("Chodzisz do przedszkola");
Break;
Case "podstawowa":
Console.WriteLine("Chodzisz do szkoły podstawowe");
Break;
Case "liceum":
Console.WriteLine("Chodzisz do liceum");
Break;
Case "technikum":
Console.WriteLine("Chodzisz do technikum");
Break;
Case "zawodowa":
Console.WriteLine("Chodzisz do szkoły zawodowej");
Break;
Case "studia":
Console.WriteLine("Chodzisz na studia");
Break;
Default:
Console.WriteLine("Nie wiadomo do jakiej szkoły chodzisz");
Break;
}
Czas na wyjaśnienie słów kluczowych.
Switch(<wyrażenie>)
{
case <pierwszy_przypadek>:
//kod który będzie się wykonywał
break;
….
Switch(<wyrażenie>) – tutaj w miejscu <wyrażenie> wpisujemy, co chcemy porównać w sekcji <pierwszy_przypadek> wpisujemy z czym chcemy porównać. Jeżeli obie wartości są sobie równe (jest ty przyrównanie, a nie porównanie np. mniejszy, większy), wtedy jest wykonywany kod, aż do wystąpienia instrukcji break;
Na koniec case może występować jedna z trzech instrukcji
Break – gdy konczymy sekcję case
Return – gdy nie chcemy już dalej wykonywać kodu i chcemy zwrócić np. wynik metody (o metodach będzie w kolejnych wpisach)
Goto – gdy chcemy przejśc do innego case
Np.
Switch(szkola)
{
Case "przedszkole":
Console.WriteLine("Chodzisz do przedszkola");
Break;
Case "podstawowa":
Console.WriteLine("Chodzisz do szkoły podstawowe");
Break;
Case "liceum":
Console.WriteLine("Chodzisz do liceum");
Break;
Case "technikum":
Console.WriteLine("Chodzisz do technikum");
Goto "studia";//gdybyśmy chcieli po wykonaniu sekcji dla "technikum" chceli przejśc do case dla "studia"
Case "zawodowa":
Console.WriteLine("Chodzisz do szkoły zawodowej");
Break;
Case "studia":
Console.WriteLine("Chodzisz na studia");
Break;
Default:
Console.WriteLine("Nie wiadomo do jakiej szkoły chodzisz");
Break;
}
Jak widać istnieję 2 metody na obsługę decyzji w naszym programie. If jest najbardziej podstawowe i najczęściej stosowane, ale gdy mamy więcej przypadków wtedy warto pomyśleć o instrukcji switch.
Tak jak ostatnio tym razem również spróbuj zrobić kilka ćwiczeń z tą instrukcją tak, żeby poczuć o co chodzi 🙂
W razie problemów pamiętaj, że zawsze chętnie ci pomogę pisz chcezostacprogramista@gmail.com