Jason. Cała informatyka w jednym miejscu!

Czy wiecie już jak wygląda instrukcja warunkowa w języku C#? Jeśli nie, to uzupełniajcie wiedzę jak najszybciej, bo to jeden z fundamentów :O! Posiedźcie przy tym trochę, bo opowiemy sobie także jakich słów kluczowych używać i jakie obowiązują konstrukcje. Poznacie także ode mnie w gratisie operator warunkowy :)!

INSTRUKCJA WARUNKOWA W JĘZYKU C# NIE RÓŻNI SIĘ NICZYM OD WIĘKSZOŚCI!

Dobra wiadomość :). Jeśli znacie choć trochę język Java, C albo C++, to jesteście w domu i tu! C# nie różni się niczym od strony budowania instrukcji warunkowych w wyżej wymienionych językach wysokiego poziomu. Mam jednak ochotę dmuchać na zimne w takich sprawach i uwzględnić osoby, które mogą nie wiedzieć jak konstruować instrukcje warunkowe ;). To wcale nie jest trudny temat, ale bardzo potrzebny!

Instrukcja warunkowa to jak sama nazwa wskazuje, instrukcja egzekwowana tylko w przypadku spełnienia ściśle określonego warunku lub wielu warunków. Słowem kluczowym, od którego zaczyna się ta cała "polka galopka" jest "if" :D. Zaczniemy od niego i stopniowo będziemy przechodzić do konstrukcji pobocznych.

WSZYSTKO ZACZYNA SIĘ OD "IF"…

Instrukcja warunkowa w języku C# zaczyna się zawsze od słowa "if". Zaraz po nim, wstawiamy parę nawiasów okrągłych, a wewnątrz nich umieszczamy warunek jaki ma decydować o wpuszczeniu programu do instrukcji lub nie. Warunek ten musi wykorzystywać operatory relacyjne omówione w artykule poprzednim. Przykładem może być sprawdzenie czy cyfra pięć jest większa od siedmiu (5 > 7):

if([warunek])
{
	// instrukcje
}

Można pominąć klamerki, jeżeli wiemy że instrukcja będzie tylko JEDNA. Wtedy dozwolony jest taki zapis:

if([warunek])
	// instrukcje

Stosujecie tylko wcięcie tabulatorem dla czytelności i szafa gra :). W powyższym przypadku, ścieżki przebiegu są dwie. Dojdzie do spełnienia warunku (i wykonania wszystkim tam zawartych instrukcji) albo nie dojdzie do spełnienia warunku (a instrukcje w środku zostaną zignorowane). Fajnie. A co gdybyśmy chcieli, żeby wykonały się jakieś inne instrukcje kiedy warunek NIE zostanie spełniony?

"ELSE" DLA PRZYPADKU NIESPEŁNIENIA WARUNKU!

Przechodzimy tym sposobem do "else"! Kiedy instrukcja warunkowa w języku C# posiada klauzulę "else", oznacza to że program może wykonać odrębną serię instrukcji (albo pojedynczą instrukcję) w przypadku, kiedy nie będzie w stanie wykonać tej pierwszej serii instrukcji zawartej po słowie kluczowym "if". A ponieważ "else" nie wymaga żadnego warunku, wykona się zawsze ilekroć warunek okaże się niemożliwy do spełnienia:

if([warunek])
{
	// instrukcje kiedy warunek zostanie spełniony
}
else
{
	// instrukcje kiedy warunek NIE zostanie spełniony
}

Aha, i jeszcze jedno! "else" nie może istnieć bez "if", zatem inna wymyślona przez Was konstrukcja inna niż ta powyższa, skończy się błędem kompilacji :(. To wszystko na temat "else" bez warunku. A gdybyśmy chcieli wstawić warunek, żeby uzależnić wykonywanie także drugiego bloku od warunku?

"ELSE IF", CZYLI SPRAWDZANIE N-TEGO WARUNKU

Nie inaczej, czytelnicy! "else if" stanowi kombinację programowania wielu ścieżek programu, których wykonanie zależy od specyficznego warunku określonego dla każdego przypadku z osobna. Popatrzcie na przykład:

if([warunekA])
{
	
}
else if([warunek B])
{
	
}

Kiedy instrukcja warunkowa w języku C# korzysta z "else if", obowiązkowo umieszczacie kolejny warunek! Sprawdzanie warunków jeden po drugim wykonuje się "schodkowo". Najpierw sprawdzany jest pierwszy, potem drugi (jeśli poprzedni jest fałszywy), a potem każdy następny (jeśli wszystkie poprzednie są fałszywe). Tak to działa. Kiedy któryś z warunków zostanie spełniony, to reszta bloków jest już ignorowana, zatem program pójdzie tylko jedną z dróg.

Można także połączyć "else if" z samym "else" i wtedy ostatni przypadek wykona się ZAWSZE, kiedy wszystkie "polegną":

if([warunekA])
{
	
}
else if([warunek B])
{
	
}
else
{
	
}
Instrukcja warunkowa w języku C#

Instrukcja warunkowa w języku C# stanowi elementarny składnik każdego programu, w którym ma występować zależność od jakiejś wartości.

OPERATOR WARUNKOWY JEDNOWIERSZOWĄ WYGODĄ DLA "IF-ELSE"!

I jeszcze na szybko o operatorze warunkowym, na temat którego znajdziecie również wzmiankę pod hasłem "operator trójargumentowy". Jest to warty ekspresowego opanowania zapis, który stanowi częściowe dwa w jednym. Zapewnia działanie jak przy konstrukcji "if-else" w jednym wierszu kodu (choć instrukcja warunkowa w języku C# może zostać "upchnięta" w jednej linijce, to nie wygląda to zbyt estetycznie :P)!

string m = 6 % 2 == 0 ? "6 jest parzyste." : "6 jest nieparzyste.";

Składa się z kilku elementów. Po znaku przypisania (równości), podajemy warunek albo wartość logiczną. Zaraz po tym umieszczamy znak zapytania, a po nim znajduje się wartość w przypadku prawdy (trzymamy się typu danych!). Stosując kolejny znak w postaci dwukropka, definiujemy po nim (po spacji) wartość w przypadku fałszu. To wszystko! Powyższy zapis jest równy temu:

string m;

if(6 % 2 == 0)
{
	m = "6 jest parzyste.";
}
else
{
	m = "6 jest nieparzyste.";
}

Tylko jest jedno "ale". Instrukcja na osobny przypadek może być tylko jedna, a to oznacza że sprawdzi się to jedynie dla przypisywania jednej z dwóch wartości bądź wywołania funkcji (albo jakaś inna pojedyncza operacja, która w chwili pisania nie przyszła mi do głowy). Gdyby był potrzebny blok instrukcji, wtedy znowu stanie się potrzebna tradycyjna instrukcja warunkowa w języku C#. Niestety :(...

Operator warunkowy w języku C#

Operator warunkowy (trójargumentowy) to wersja "slim" instrukcji warunkowej "if-else", która w wygodny sposób definiuje po jednej instrukcji na dwie ścieżki w jednym wierszu kodu!


To są wszystkie podstawowe informacje! Temat sam w sobie jest naprawdę prosty do nauczenia się go na pamięć, a najlepiej opatrzeć go solidną dawką praktyki indywidualnej. Wtedy "wkuwanie" nie będzie potrzebne :).

PODOBNE ARTYKUŁY