Kurs C# cz.6 – instrukcje warunkowe

WJeśli chcemy aby nasze programy potrafiły, oprócz wykonywania prostych obliczeń, również samodzielnie decydować co zrobić potrzebny nam będzie jakiś sposób na przekazanie im jakie decyzje powinny podejmować. W tym celu poznamy dzisiaj kolejny bardzo ważny element języka C# jakim są instrukcje warunkowe.

Instrukcje warunkowe, jak już wspomniałem pozwalają nam dodać w naszych programach element decyzyjności, przykładowo chcąc wykonać różne operacje w zależności od tego czy liczba jest mniejsza bądź większa od jakiejś wartości skorzystamy z pomocy właśnie instrukcji warunkowych.

W języku C# mamy zasadniczo 2 typy instrukcji warunkowych: if…else… i switch, chociaż ten pierwszy występuje też w wersji skróconej o czym za chwilę.

Instrukcje warunkowe operują na dwóch wartościach – prawdzie i fałszu. Aby móc uzyskać taką wartość musimy skorzystać pewnie z jakichś operatorów. W rzeczy samej, w języku C# mamy kilka operatorów, które pozwalają uzyskać wartość true/false:

  • == – porównanie dwóch wartości. Zwraca wartość true jeśli wartości (obiekty) są takie same, w przeciwnym razie otrzymamy wartość false
  • != – przeciwieństwo poprzedniego operatora. Również porównuje dwie wartości (obiekty) jednak w tym wypadku zwraca true kiedy wartości będą różne
  • <, >, <=, >= – „mniejsze”, „większe”, „mniejsze lub równe”, „większe lub równe”. Służą do porównywania wartości liczbowych. Myślę, że nie ma co tutaj się rozpisywać, ich nazwy mówią wszystko o sposobie działania.

Dodatkowo chcąc poskładać bardziej skomplikowany warunek możemy skorzystać z operatorów ||&& czyli odpowiednio ‚lub’ i ‚i’. Pierwszy powoduje, że jeśli któryś z warunków jest spełniony czyli, któryś z operatorów daje wartość true to całość da wartość true, w drugim przypadku wszystkie warunki muszą być spełnione.

Przykładowy warunek może wyglądać tak

W tym wypadku będzie on spełniony kiedy a  będzie większe od 4 i b będzie mniejsze od 10 lub b będzie większe od 15.

Więcej o tym całym łączeniu warunków logicznych, ich przekształcaniu itd. możecie znaleźć szukając w Google o algebrze Boola ;)

W języku C# dla wartości logicznych przewidziany jest typ bool dzięki czemu możemy w jednym miejscu obliczyć wyrażenie logiczne i wykorzystać je później albo zwrócić jako wartość funkcji. Tak więc poza takimi bezpośrednimi warunkami możemy np. wywołać funkcję, która zwraca true/false:

Podobnie sprawa wyglądać będzie z używaniem zmiennych.

No dobra, ale miało być o instrukcjach warunkowych więc po tym krótkim omówieniu operacji logicznych w C# przejdźmy do głównego tematu tej części.

Jak wspomniałem na początku, w języku C# mamy dwa rodzaje instrukcji warunkowych z czego jedna z nich występuje w dwóch postaciach.

  1. Instrukcja if-else jest bardzo często wykorzystywana w programach. Jej konstrukcja wygląda następująco:

Jeśli warunek jest spełniony zostanie wykonany kod z bloku1, a pozostałe dwa bloki będą pominięte. Jeśli zaś pierwszy warunek zwróci false to program sprawdzi warunek2 i w przypadku jego spełnienia (zwrócenia wartości true) wykonany będzie blok2, zaś jeśli żaden warunek nie będzie spełniony wykona się kod z bloku3. Zarówno  else if  jak i  else  nie są wymagane, dodatkowo ten pierwszy może być dodany kilkukrotnie jeśli chcemy dodać więcej warunków.

Przykład wykorzystania instrukcji if-else w metodzie:

2) Drugi typ instrukcji warunkowej to instrukcja switch. Wygląda ona w następujący sposób:

Służy ona do sprawdzania wartości zmiennej. jeśli zmienna podana na początku ma wartość podaną obok słowa case wtedy wykonywany jest odpowiedni blok kodu, a reszta jest pomijana. W przypadku kiedy zmienna nie jest równa żadnej z podanych wasrtości wykonywany jest blok4 wpisany za słowem default. Zwróć uwagę na słowa kluczowe break, które znajdują się po każdym bloku. Oznaczają one pominięcie wykonywania dalszych instrukcji i wyjście ze switch. Wartościami w instrukcji switch mogą być tylko stałe.

3) Wspomniałem, że jedna z instrukcji posiada skróconą wersję. Tą instrukcją jest if-else. Jeśli chcemy wybrać jeden z dwóch wariantów na podstawie warunku możemy to zrobić w taki sposób:

W podanym przykładzie przypisujemy do zmiennej max wartość zmiennej a lub b w zależności od tego czy a jest większe od b. Tak więc mamy najpierw warunek, następnie znak ?, po którym wpisujemy co zwróci nasza instrukcja jeśli warunek zostanie spełniony i na końcu znak : , po którym wpisujemy wartość zwracaną w przypadku niespełnienia warunku.

Ważne żeby zapamiętać, że ten zapis musi zawsze zwracać jakąś wartość, tak więc nie możemy wykorzystać go w przypadku kiedy chcemy po prostu zdecydować jaką metodę lub blok kodu wykonać, wtedy musimy skorzystać ze zwykłej instrukcji if-else.

To tyle jeśli chodzi o podstawy instrukcji warunkowych. Od tej pory możecie pisać programy, które potrafią podejmować decyzje wg ustalonych przez Was reguł ;)

2 przemyślenia nt. „Kurs C# cz.6 – instrukcje warunkowe

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *