5. Instrukcje warunkowe/wyboru – if, else, else if, zagnieżdżone instrukcje warunkowe, switch

5. Instrukcje warunkowe/wyboru – if, else, else if, zagnieżdżone instrukcje warunkowe, switch
13 maja 2022 Brak komentarzy C#, Poradnik Tajko

Omówienie instrukcji warunkowych/wyboru od klasycznego if’a po takiego bardziej rozbudowanego lub zagnieżdżonego na instrukcji wyboru kończąc.

Punkty w nagraniu:
  1. Czym są instrukcje warunkowe
  2. Instrukcja warunkowa if
  3. Instrukcja warunkowa else
  4. Instrukcja warunkowa if else
  5. Zagnieżdżone instrukcje warunkowe
  6. Instrukcja wyboru switch
  7. Przykłady z poziomu kodu

Linki:

  • Projekt do pobrania: Link

1. Czym są instrukcje warunkowe

Instrukcja warunkowa to nic innego jak jakiś warunek do spełnienia, po którym ma zostać wykonane jakieś działanie. Zaczyna się od słowa kluczowego if, w nawiasach okrągłych podajemy wyrażenie, które musi zostać spełnione.


2. Instrukcja warunkowa if

//przykładowe dane
int valueA = 1;
int valueB = 2;

if (valueA == 2 || valueB == 2) // true
{
    // .. jakiś kod
}

Zadeklarowano i zainicjalizowano przykładowe zmienne. W instrukcji warunkowej sprawdzamy czy valueA ma wartość 2 lub valueB ma wartość 2, jeśli jedno z nich będzie true to wejdzie do środka i wykonuje kod.

//przykładowe dane
int valueA = 1;
int valueB = 2;

if (valueA == 1 && valueB == 2) // true
{
    // .. jakiś kod
}

Sprawdzenie czy valueA ma wartość 1 i valueB ma wartość 2, jeśli oba zwrócą true to wejdzie do środka

//przykładowe dane
int valueA = 1;
int valueB = 2;

if (valueA != valueB) // true
{
    // .. jakiś kod
}

Sprawdzenie czy wartość valueA różni się od wartości valueB, jeśli tak to wejdzie do środka

//przykładowe dane
int valueA = 1;
int valueB = 2;
bool isOK = true;

if (valueA == valueB && (valueA == 10 || valueA == 20) && isOK)
{
    // .. jakiś kod
}

Sprawdzenie czy wartość valueA jest równa wartości valueB i albo value będzie miał wartość 10 lub valueB będzie miał wartość 20 oraz isOK będzie true. Jeśli te wszystkie warunki zostaną spełnione to wejdzie do środka


3. Instrukcja warunkowa else

if (wyrazenieLogiczne)
{
    // .. jakiś kod
}
else
{
    // .. jakiś kod
}

Jeśli wyrażenie logiczne nie zostanie spełnione to wejdzie do else.


4. Instrukcja warunkowa else if

//przykładowe dane
int valueA = 1;
bool isOK = true;
bool isOK2 = false;

if (valueA == 10 && isOK)
{
    // .. jakiś kod
}
else if (valueA == 20 && isOK)
{
    // .. jakiś kod
}
else if (valueA != 10 && valueA != 20 && isOK && isOK2)
{
    // .. jakiś kod
}

Sprawdzenie czy valueA ma wartość 10 i czy isOK ma wartość true, jeśli tak to wejdzie do środka. W przeciwnym wypadku przejdzie do kolejnego ifa i sprawdzi warunek, jeśli nie będzie spełniony to przejdzie. Do ostatniego ifa, jeśli któryś z nich będzie spełniony to wchodzi do pierwszego, których warunek zwraca true

//przykładowe dane
int valueA = 1;
bool isOK = true;

if (valueA == 10 && isOK)
{
    // .. jakiś kod
}
else if (valueA == 20 && isOK)
{
    // .. jakiś kod
}

Nic nie stoi na przeszkodzie żeby do powyższego przykładu, a dokładniej do powyższych if..else dodać nowego ifa. Nie jest powiedziane, że po ifie nie może być dodany kolejny if. W przykładzie obok mamy sprawdzenie czy valueA ma wartość 10 i isOK jest true. W przeciwnym razie przechodzi do dalszej części if’a.


5. Zagnieżdżone instrukcje warunkowe

//przykładowe dane
int valueA = 1;
bool isOK = true;

if (valueA > 0)
{
    if (isOK)
    {
        // .. jakiś kod
    }
    else
    {
        // .. jakiś kod
    }
}

Nic nie stoi na przeszkodzie, żeby tworzyć instrukcje warunkowe w już istniejących instrukcjach warunkowych, czasami możemy mieć taką sytuację, gdzie będzie potrzeba sprawdzenia czegoś wewnątrz. W przykładzie obok mamy sprawdzenie czy valueA jest większe od 0, jeśli tak to wchodzi do środka, gdzie znajduje się kolejna instrukcja warunkowa. Sprawdzająca czy isOK jest true, jeśli tak to wejdzie do środka, w przeciwnym razie wchodzi do else i wykonuje kod


6. Instrukcja warunkowa switch

Instrukcja wyboru switch jest czymś podobnym do klasycznej instrukcji warunkowej if..else, także porównywana jest wartość A z wartością B i jeśli warunek zostanie spełniony to wykona jakiś kod, m.in. konstrukcja całego zapytania wygląda trochę inaczej. Zamiast słowa kluczowego if, korzystamy ze słowa switch i w nawiasie podajemy np. zmienną której chcemy sprawdzić wartość. Później wewnątrz switcha w postaci słowa kluczowego case, sprawdzamy czy podana zmienna ma konkretną wartość, jeśli tak to wchodzimy do środka i wychodzimy przy pomocy słowa kluczowego break.

//przykładowe dane
int wartoscDoSprawdzeniaInt = 0;
switch (wartoscDoSprawdzeniaInt)
{
    case 1:

        break;
    case 2:

        break;
    case 3:

        break;
    case 4:

        break;
    default:

        break;
}

Sprawdza wartość wartoscDoSprawdzeniaInt i jeśli ma wartość jedną z wartości podanych przy case to wchodzi do środka. Wyjście z case polega na wykonaniu break lub wywołaniu return. Jeśli, żaden case nie jest spełniony to wchodzi do default. Default jest czymś w rodzaju else w instrukcji warunkowej if

//przykładowe dane
int wartoscDoSprawdzeniaInt = 0;
string wartoscDoSprawdzeniaString = "1";

switch (wartoscDoSprawdzeniaInt)
{
    case '1':

        break;
    case '2':

        break;
    case '3':

        break;
    case '4':

        break;
    default:

        break;
}

switch (wartoscDoSprawdzeniaString)
{
    case "1":

        break;
    case "2":

        break;
    case "3":

        break;
    case "4":

        break;
    default:

        break;
}

Jeśli chcielibyśmy sprawdzić wartości np. float, char, string to nic nie stoi na przeszkodzie, jedynie przy case musimy podać wartość tego właśnie typu. Dla przykładu sprawdzamy wartość zmiennej typu float to w case podamy np. 4.0f, jeśli sprawdzamy typ char to podajemy wartość wewnątrz np. ‘c’ itp.

Tagi
O Autorze
Tajko
Tajko Tajko z tej strony:) Obecnie pracuję we Wrocławiu przy projektach desktopowych. Skoro sam się czegoś nauczyłem to i inni mogliby nauczyć się tego co ja w łopatologiczny sposób:)

ZOSTAW ODPOWIEDŹ