Instrukcja warunkowa IF

Instrukcja warunkowa if C/C++

Decyduj o własnym losie! Instrukcja warunkowa IF

Pierwsze kroki masz już za sobą a więc możemy powoli zanurzać się w świecie programowania. Teraz poznasz jedną z najważniejszych funkcji każdego języka programowania. Utrwalisz sobie instrukcje wejścia i wyjścia oraz zmienne. Spójrz na ilustracje poglądową.

Instrukcja warunkowa if C/C++

Nie ma co przedłużać wstępu czas brać się za robotę.

Instrukcja IF

Instrukcja warunkowa IF nie wymaga przyłączenia do programu biblioteki iostream ale mimo wszystko i tak zawsze warto to robić. Jest to standardowa biblioteka która przydaje się na każdym kroku. Instrukcja warunkowa wygląda następująco if(). Składa się ze słowa kluczowego if i nawiasów okrągłych (). Gdzie zawsze znajduje się warunek logiczny funkcji. Zacznijmy od prostego fragmentu kodu na rozgrzewkę.

#include <iostream>
using namespace std;

int main()
{
    cout<<"Przybij piatke: ";
    int liczba;
    cin>>liczba;
    if(liczba == 5) //sprawdzamy czy podana liczba jest równa 5
    {
        cout<<"Dziekuje"; //jeżeli tak to wypisujemy cout
    }

    return 0;
}

Program nie jest skomplikowany. Sprawdza on czy użytkownik podał liczbę 5 jeżeli tak to wypisuje na ekranie „Dziekuje”. Jeżeli nie to kończy jego działanie. Zwróć uwagę że porównanie dwóch wartości odbywa się przy użyciu podwójnego znaku równości „==„.Pojedynczy znak równości „=” służy do przypisania wartości zmiennej. Prawda że proste? Aby lepiej zrozumieć tą bardzo ważną funkcję przeanalizujmy jeszcze parę przykładów ale najpierw pokaże Ci kilka znaków porównania.

Mniejsze <
Większe >
Równe ==
Mniejsze lub równe <=
Większe lub równe >=
Różne !=

Instrukcja if else

Pora na trochę bardziej rozbudowany przykład użycia if.

#include <iostream>
using namespace std;

int main()
{   
    int aktualny_rok = 2020; //tworzymy zmienną i nadajemy jej wartość
    cout<<"Podaj rok urodzenia: ";
    int rok_urodzenia; //tworzymy zmienną
    cin>>rok_urodzenia; //wczytujemy ją z klawiatury
    if(aktualny_rok - rok_urodzenia >= 18) //warunek funkcji if
    {
        cout<<"Jestes pelnoletni"; //ciało funkcji
    }
    else
    {
        cout<<"Nie jestes pelnoletni"; //alternatywa dla ifa
    }
    

    return 0;
}

Wiele rzeczy w kodzie już się powtarza. Jeżeli jednak są dla Ciebie obce kliknij w ten link INSTRUKCJE WEJŚCIA I WYJŚCIA. Przejdźmy od razu do linijki gdzie pojawia się if(aktualny_rok – rok_urodzenia >= 18). Jak widzisz w nawiasach okrągłych (czyli typowych dla każdej funkcji) dzieje się dojść dużo. Od aktualnego roku (zainicjalizowanego w kodzie) odejmujemy rok urodzenia (podany przez użytkownika). Jeżeli wartość otrzymana z tej różnicy jest większa lub równa 18 to cout wypisuje że użytkownik jest pełnoletni. W przeciwnym wypadku czyli else program wypisuje że użytkownik jest niepełnoletni. Zwróć uwagę że zarówno if jak i else posiadają nawiasy klamrowe. Else zawsze jest instrukcją alternatywną dla ifa razem tworzą nierozłączną parę.

Użycie if else if

BMI obliczamy dzieląc masę ciała (w kilogramach) przez wzrost do kwadratu (w metrach). Wskaźnik ten wykorzystywany jest przede wszystkim do oceny ryzyka pojawienia się groźnych chorób. Jest to krótki wstęp do kolejnego programu. W fragmencie będą użyte wartości zmiennoprzecinkowe (ułamkowe) a je w C++ zapisuje się po kropce czyli 1.5 zamiast 1,5 tak jak zazwyczaj to robimy w na co dzień.

#include <iostream>
using namespace std;

int main()
{   
    cout<<"Podaj swoja wage [kg]: ";
    float waga; //tworzymy zmienna typu float o nazwie waga
    cin>>waga;
    cout<<"Podaj swoj wzrost [m]: ";
    float wzrost; //kolejna zmienna typu float
    cin>>wzrost;
    float bmi; // (:
    bmi = waga / (wzrost * wzrost); //obliczamy bmi 
    if(bmi < 18) //klasyczne użycie ifa
    {
        cout<<"Masz niedowage";
    }
    else if(bmi > 25) //jeżeli bmi < 18 to sprawdź czy jest większe od 25
    {
        cout<<"Masz nadwage";
    }
    else //żaden warunek nie jest spełniony więc pozostaje to
    {
        cout<<"Waga jest prawidlowa";
    }
    cout<<"\nTwoje BMI wynosi "<<bmi;

    return 0;
}

Ten fragment chociaż wygląda strasznie nie należy się go bać. Zawiera on tylko dwie nowe rzeczy. Pierwszą z nich jest nowy typ zmiennych float. Jest to typ ułamkowy pojedynczej precyzji jak mogłeś już to zauważyć (podawanie wzrostu w metrach). Kolejną nową rzeczą jaka się pojawiła w kodzie jest else if. Jest to alternatywa dla alternatywy. Najłatwiej będzie jak wytłumaczę słownie linijki 13-24.

Jeżeli bmi jest mniejsze niż 18 to napisz „Masz niedowage”. Jeżeli nie to sprawdź czy bmi jest większe od 25 wtedy napisz „Masz nadwagę”. W przeciwnym wypadku napisz „Waga jest prawidłowa”.

Zobacz że tym sprytnym sposobem utworzyliśmy trzy przedziały liczbowe a do każdego z nich daliśmy odpowiedni napis. Teraz pora na kolejny przykład.

Zagnieżdżone if

#include <iostream>
using namespace std;

int main()
{
    int wybor1;
    cout<<"Potrafisz programowac? 1-TAK 0-NIE ";
    cin>>wybor1;
    if(wybor1 == 0)
    {
        cout<<"Czy widziales poprzednia lekcje? 1-TAK 0-NIE ";
        cin>>wybor1;
        if(wybor1 == 0)
        {
            cout<<"Zapraszam do obejrzenia";
        }
        else if(wybor1 == 1)
        {
            cout<<"Bardzo sie ciesze";
        }
        else
        {
            cout<<"Blad zla wartosc";
        }
    }
    else if(wybor1 == 1)
    {
        cout<<"Gratulacje!";
    }
    else
    {
        cout<<"Blad zla wartosc";
    }
    
    return 0;
}

Jeżeli wstępnie przeanalizowałeś kod mniej więcej wiesz o co w nim chodzi. Najlepiej będzie jak wkleisz sobie go do kompilatora i potestujesz. Nie dodałem do niego żadnych komentarzy po to aby był jak najbardziej czytelny. Coś co rzuca się w oko to że w ciele ifa jest kolejny if i nie ma w tym nic zaskakującego. Bardzo często będziesz natrafiał na takie przypadki w programowaniu. Pokazałem Ci to abyś wiedział że tak naprawdę nie ma żadnych ograniczeń w pisaniu kodu. Warto abyś wiedział że można korzystać z takiego rozwiązania. O ciekawszych zastosowaniach instrukcji warunkowej dowiesz na kolejnych lekcjach. Nie ma sensu aby rozpisywać tutaj kolejne przypadki użycia ponieważ jest ich nieskończenie wiele. Gdy będziemy przerabiać inne fragmenty kodu w dalszej części tego bloga zobaczysz inne zastosowania.

Podsumowanie

Instrukcja warunkowa if jest bardzo potrzebna i warto abyś dobrze ją znał. Przeanalizuj sobie kody programów i dowolnie je modyfikuj w taki sposób abyś miał z tego jak najwięcej frajdy. Naprawdę nie ma czego się obawiać w ifach. Pamiętaj aby w nawiasach funkcji wpisywać warunek logiczny tak jak ja to robiłem do tej pory. Komputer jest maszyną zero jedynkową więc jeżeli w nawiasach będzie tylko nazwa zmiennej (if(zmienna)) t0 kompilator domyślnie będzie to uznawał jako prawdę. Wyjątkiem będzie przypadek w którym zmienna ma wartość zero. Dziękuję za lekturę i zapraszam do dalszej części.