fbpx

LEKCJA 4 – instrukcje warunkowe w języku C#

Instrukcje warunkowe są elementem każdej aplikacji napisanej w języku C#. Są tak powszechne, że koniecznie musisz je poznać i opanować perfekcyjnie.

Czasami chcemy wykonać pewną czynność w zależności od tego czy zaszła jakaś konkretna sytuacja. W programowaniu taką sytuację nazywamy warunkiem (ang. condition). Taki warunek możemy wykorzystać do podjęcia decyzji. Oto kilka przykładów. Warunek zaznaczyłem pogrubioną czcionką:

  • Chcemy wyjść na spacer jeśli nie pada deszcz.
  • Sprzedawca w sklepie może sprzedać alkohol tylko jeżeli klient ma ukończone 18 lat.
  • Jeśli w samochodzie jest niski poziom paliwa to pojawi się ostrzegawcza lampka na desce rozdzielczej.

Już pewnie dostrzegłeś, że warunki są takie istotne dlatego, że mają wpływ na to co się stanie. Warunki zawsze mają jakiś efekt.

Instrukcja warunkowa – if

W języku C# warunek możemy przedstawić za pomocą instrukcji if(ang. jeżeli). Przedstawmy omawiane powyżej sytuacje w języku C#.

//Chcemy wyjść na spacer jeśli nie pada deszcz
bool isRaining = true;
if(isRaining) 
{
    Console.WriteLine("Idź na spacer");
}

W nawiasach okrągłych umieszczamy warunek, czyli zmienną, która przyjmuje wartość true albo false. W języku C# do przechowywania wartości logicznych służy typ danych bool. Dlatego zmienna isRaining jest typu bool.

//Sprzedawca w sklepie może sprzedać alkohol tylko jeżeli klient ma ukończone 18 lat 

int age = 20
if(age>=18)
{
    Console.WriteLine("Można sprzedać alkohol klientowi");
}
//Jeśli w samochodzie jest niski poziom paliwa to pojawi się ostrzegawcza lampka na desce rozdzielczej.

var outOfFuel = true;
if(outOfFuel)
{
    Console.WriteLine("Brak paliwa, zapal kontrolkę");
}

Instrukcja warunkowa if-else

Instrukcja if działa tak – podany kod wykona się jeśli zostanie spełniony warunek. A co jeśli dany warunek nie zostanie spełniony? Tego instrukcja if nie przewiduje. W takiej sytuacji pomocna okazuje się instrukcja if-else.

Polega ona na dodaniu słowa kluczowego else. Konstrukcja ta służy do tego aby określić co ma się stać jeśli podany warunek nie będzie spełniony.

var isRaining = false;
if(isRaining) 
{
    Console.WriteLine("Idź na spacer");
} 
else 
{
    Console.WriteLine("Zostań w domu");
}

UWAGA: We wszystkich podanych tu przykładach można pominąć nawiasy klamrowe. Możemy to zrobić tylko jeżeli kod, który ma się wykonać składa się tylko z jednej linii kodu. Ja zawsze umieszczam nawiasy klamrowe w instrukcjach warunkowych ponieważ jest to dobra praktyka programistyczna. Dzięki temu unikam błędów.

Zadanie dla Ciebie

Oto przykładowe zadanie, które możesz dostać na rozmowie rekrutacyjnej. Ma ono za zadanie sprawdzić czy wiesz jak działają instrukcje warunkowe w języku C#. Dodam, że zadanie jest podchwytliwe i należy zwrócić uwagę na nawiasy klamrowe:

Zadanie: co wyświetli następujący program?

int liczba = 100;

if(liczba > 0)
  Console.WriteLine("1");
else 
  Console.WriteLine("2");  
  Console.WriteLine("3");
  1. spróbuj zgadnąć co się wyświetli w konsoli kiedy uruchomimy ten program.
  2. stwórz nowy program konsolowy, następnie skopiuj ten kod i wklej do metody Main.
  3. Jeśli zdziwił Cię wynik to spróbuj dodać nawiasy klamrowe i zobacz co się stanie.
  4. Jak myślisz, dlaczego powyższy program bez nawiasów wyświetlił liczby: 1 3?