Wróć do informacji o e-podręczniku Udostępnij materiał Wydrukuj

Instrukcja warunkowa – przypomnienie

Instrukcja warunkowa spełnia rolę zwrotnicy: pozwala wprowadzić w programie rozgałęzienia, które odpowiadają różnym zdarzeniom w czasie działania aplikacji oraz odpowiednio na nie reagować.

To, jak program zachowa się docierając do rozgałęzienia, zależy od tego, czy spełniony został pewien warunek logiczny. Przykładowo, system obsługi kart płatniczych odmawia zrealizowania transakcji, gdy przekroczono dzienny limit wartości operacji, bądź jeśli na koncie brakuje pieniędzy. W przeciwnym przypadku karta jest obciążana.

Trudno wyobrazić sobie jakikolwiek złożony algorytm, w którym nie zastosowano instrukcji warunkowej. W bardziej zaawansowanych programach zawsze pojawiają się rozgałęzienia. Oto przykłady:

  • przed uruchomieniem aplikacji system operacyjnysystem operacyjnysystem operacyjny musi sprawdzić, czy na dysku znajdują się wszystkie pliki niezbędne do jej działania. Jeżeli ich nie ma, pojawia się komunikat o błędzie, a program nie startuje;

  • podczas zakładania skrzynki e‑mailowej specjalna aplikacja internetowaaplikacja internetowaaplikacja internetowa porównuje identyfikator podany przez użytkownika z nazwami innych kont i odmawia rejestracji w przypadku pojawienia się dublera;

  • gdy pracujemy w systemie bankowości online, na bieżąco mierzony jest czas, który upłynął od momentu wykonania ostatniej operacji. Jeżeli przekroczy on pewną wartość, następuje automatyczne zamknięcie sesji.

We wszystkich przedstawionych sytuacjach programista musi odwołać się do instrukcji warunkowej.

Sprawdzanie liczb w operacjach dzielenia

Przygotujemy algorytm, który posłuży do skontrolowania poprawności liczb biorących udział w operacji dzielenia.

Zastanówmy się jednak, po co to w ogóle sprawdzać? Każdy wie, że dzielnik musi być różny od zera. Niestety, nie zawsze da się to zagwarantować. Po pierwsze – i mniej ważne – użytkownik programu może celowo lub niechcący podać liczbę 0 jako dzielnik. O wiele częściej zdarza się coś innego: zerowa wartość dzielnika nie jest wpisywana przez człowieka, ale pojawia się jako efekt działania jakiegoś urządzenia – na przykład rozkalibrowanego czujnika wchodzącego w skład systemu kontrolnego w zakładzie przemysłowym.

Programista musi takie zdarzenia przewidzieć i przygotować się na nie. Właśnie dlatego trzeba sprawdzać, czy dane spełniają określone kryteria nawet w banalnych przypadkach.

Pisząc algorytm rozpoczynamy od wczytania dwóch wartości (dla uproszczenia zakładamy, że użytkownik podaje tylko liczby całkowite): dzielna oraz dzielnik.

RTSkOKj9TK0AO

Znając już dane przystępujemy do ich sprawdzenia (sprawdzenie poprawności danychsprawdzenie poprawności danychsprawdzenie poprawności danych). Zmienna dzielna może być dowolną liczbą, zatem ją pomijamy. W przypadku zmiennej dzielnik należy sprawdzić, czy jej wartość różni się od zera. Używamy operatora !=, który oznacza brak równości (chcemy się upewnić, że wartość zmiennej dzielnik nie jest równa 0).

Rbv6rWECUeSsX

Jeśli warunek nie jest spełniony (czyli wartość zmiennej dzielnik wynosi 0), wypisujemy komunikat o błędzie i kończymy działanie programu.

RmkzL8B8QWbyX

Gdy z kolei warunek jest spełniony (zmienna dzielnik różni się od zera), zmiennej wynik przypisujemy wartość ilorazu, wyświetlamy jej wartość na ekranie i kończymy działanie programu.

RqK4GRHzIl29r

Logowanie w serwisie społecznościowym

Przeanalizujmy teraz inny proces, w którym nie obędzie się bez instrukcji warunkowej. Mowa o mechanizmie logowania, stosowanym w serwisach internetowych. Specjalna aplikacja odczytuje wówczas informacje przekazane przez użytkownika, a następnie sprawdza, czy jest on właścicielem konta.

Informacje (login i hasło) wprowadzone podczas zakładania konta (rejestracji), przechowuje się w bazie danych. W trakcie logowania zapamiętany identyfikator wraz z hasłem są z bazy pobierane i porównywane z informacjami podanymi obecnie. Jeśli dane są identyczne, użytkownik otrzymuje dostęp do konta. W przeciwnym wypadku pojawia się komunikat o błędzie.

Proces logowania zaczynamy od wczytania informacji przekazanych przez użytkownika do dwóch zmiennych: login oraz haslo. W zwykłych warunkach należałoby przeprowadzić walidację danych; dla uproszczenia załóżmy, że ją przeprowadziliśmy.

Rg0Tb6ZLgRMt8

Z bazy danych trzeba pobrać zapamiętany identyfikator wraz z hasłem (login_z_bazy oraz hasło_z_bazy).

R1H65Q3vfTpIH

Należy teraz porównać zgromadzone informacje. Robimy to za pomocą operatora ==, który oznacza równość wyrażeń znajdujących się po obu stronach (sprawdzamy, czy podane wartości są identyczne). Najpierw badamy poprawność zmiennej login.

RqLpqmnMGYweI

Jeżeli identyfikator nie jest poprawny, zostaje wyświetlony komunikat o błędzie, a program kończy działanie. Gdy z kolei login okaże się zgodny z zapamiętanym, rozpoczynamy procedurę sprawdzenia hasła.

RYLVkF5RYrB0l

Jeśli hasło nie jest poprawne, pojawia się komunikat o błędzie, a program kończy pracę. Gdy natomiast zgadza się z hasłem przechowywanym w bazie, użytkownik otrzymuje dostęp do serwisu.

Rm7gMpkeeQlrz

Słownik

system operacyjny
system operacyjny

oprogramowanie zarządzające zasobami komputera (procesorem, pamięcią operacyjną, pamięcią masową itd.) oraz uruchamianymi aplikacjami; odpowiada także za interakcję z użytkownikiem

aplikacja internetowa
aplikacja internetowa

program uruchamiany z poziomu przeglądarki WWW (interfejs serwisu Facebook, system bankowości online itp.)

sprawdzenie poprawności danych
sprawdzenie poprawności danych

sprawdzanie, czy dane spełniają kryteria niezbędne do działania programu (przykładowo, czy mają odpowiedni format lub wartość)