Jason. Cała informatyka w jednym miejscu!

Interesuje Was drugi sposób konstruowania ścieżek przebiegu programu w języku C#, oprócz tego tradycyjnego? To mam dla Was świetną nowinę - macie jeszcze do dyspozycji instrukcję wielokrotnego wyboru, czyli słowo kluczowe "switch" w języku C#!

"SWITCH" W JĘZYKU C# TO PIĘKNIEJSZA ALTERNATYWA DLA ROZGAŁĘZIONYCH "IF'ÓW"!

Znacie już instrukcje warunkowe? W takim razie poznajcie drugi wariant służący do tworzenia różnych przebiegów wykonywania instrukcji programu. To jest instrukcja "switch", która znana jest także pod hasłem "instrukcja wielokrotnego wyboru". Pozwala ona na zdefiniowanie wielu bloków instrukcji pod określonymi warunkami określonymi dla każdego z nich, tylko w nieco "upchniętej" formie ;).

PRZYKŁAD KODU ŹRÓDŁOWEGO

Śpieszę z zaprezentowaniem Wam prostego przykładu użycia "switch" w akcji. Popatrzcie najpierw na kod, a potem zabierzemy się za wytłumaczenie:

int rating = 4;

switch (rating)
{
	case 1:
		Console.WriteLine("Nie zdałeś!");
		break;
	
	case <= 4:
		Console.WriteLine("Zdałeś, ale wynik taki sobie...");
		break;

	case 5:
	case 6:
		Console.WriteLine("Zdałeś z rewelacyjnym wynikiem!");
		break;

	default:
		Console.WriteLine("Niezdefiniowana wartość");
		break;
}

Instrukcja "switch" w języku C# rządzi się swoimi prawami co do stosowanej składni. Po pierwsze, słowo "case" odpowiadające za utworzenie warunku dla bloku kodu jaki ma się wykonać po jego spełnieniu. Po drugie, obowiązkowe stawianie dwukropka po słowie "case" i podanej wartości. Po trzecie to słowo kluczowe "break", także niezbędne do przejścia przez procedurę kompilacji. Wszystko przedstawione powyżej otoczone odrębnymi klamerkami pod słowem "switch".

Przedstawiłem wszystkie dozwolone konstrukcje jakie mogą występować wewnątrz instrukcji wielokrotnego wyboru. Może być pojedynczy "case" oczekujący konkretnej wartości, może to być "case" oczekujący wartości z podanego przedziału (choć jest to dostępne od C# 9.0!), mogą być dwa "case'y", do których "przyczepiony" jest ten sam blok instrukcji, jak również odpowiednik słowa "else", czyli kiedy żaden konkretny warunek się nie sprawdził ("default"). Jak widzicie, instrukcja "switch" w języku C# jest zarazem zwięzła, a jednocześnie bardzo elastyczna, gdyż pozwala sformalizować to samo co przy pomocy instrukcji warunkowej, tylko krócej :D. Wewnątrz nawiasów zaraz po "switch", możecie wstawić również wyrażenie arytmetyczne. Spośród dozwolonych typów wartości jest tylko dowolny liczbowy, "char" albo "string" i w zasadzie to jest jedyne ograniczenie.

Gdyby komuś z Was nadal było to trudne zrozumieć, to może popatrzenie na tę samą konstrukcję w postaci tradycyjnych instrukcji warunkowych coś pomoże :):

int rating = 4;

if(rating == 1)
{
	Console.WriteLine("Nie zdałeś!");
}
else if(rating <= 4)
{
	Console.WriteLine("Zdałeś, ale wynik taki sobie...");
}
else if(rating == 5 || rating == 6)
{
	Console.WriteLine("Zdałeś z rewelacyjnym wynikiem!");
}
else
{
	Console.WriteLine("Niezdefiniowana wartość");
}

To jest dokładnie to samo, co posiada u góry "switch" w języku C#. Nie bójcie się - to nie jest instrukcja "exclusive". Posiada ją także między innymi Java, więc proszę nie martwić się, że nie znajdziecie tego gdzie indziej :D.

Instrukcja "switch" w języku C#

Instrukcja wielokrotnego wyboru pozwala zaprogramować przebieg programu taki sam jak przy użyciu zwykłych instrukcji warunkowych, jednak sprzyja ona dodatkowej zwięzłości kodu.


Koniec! W taki oto sposób zaprezentowałem Wam wszystkim informacje na temat konstrukcji "switch" w języku C#. Czy powinna ona być stosowana? Moim zdaniem jak najczęściej, tam gdzie się tylko da :)! Zazwyczaj pozwala zdefiniować ten sam przebieg programu za pomocą mniejszej ilości kodu, a im mniej, tym lepiej.

PODOBNE ARTYKUŁY