Przeczytaj
Przypomnienie informacji o pętli for
Konstrukcja pętli for
składa się z trzech głównych elementów, które są umieszczone wewnątrz definicji tej pętli:
zmienna sterująca z przypisaną początkową wartością;
warunek określający, do jakiego momentu pętla ma się wykonywać;
zmiana wartości następująca po każdej iteracji.
Budowa i zastosowanie pętli while
Pętla while
jest zbudowana inaczej. Zmienna sterująca jest tworzona przed zdefiniowaniem samej pętli. Warunek jest umieszczony, podobnie jak w pętli for
, wewnątrz definicji, a zmiana wartości zmiennej sterującej następuje w ciele tej pętli, czyli tam, gdzie zdefiniowane są powtarzane operacje. Ta różnica może nie być widoczna na schemacie blokowym, jednak będzie ją można zaobserwować, gdy przejdziemy do implementacji pętli while
w językach programowania.
Teoretycznie pętla while
może być używana w zasadzie w każdej sytuacji, w której mogłaby być użyta pętla for
. Wszystko zależy od tego, co i w jaki sposób chcemy osiągnąć.
Najczęściej jednak pętli for
używamy wtedy, gdy wiemy, ile dokładnie razy chcemy powtórzyć daną czynność. Natomiast pętlę while
wykorzystujemy, gdy nie jest ważna liczba powtórzeń, a zależy nam tylko na spełnieniu określonego warunku.
Przykładowe algorytmy wykorzystujące pętlę while
Wypisanie ciągu liczb całkowitych z zakresu
Tworząc nasz schemat blokowy, zacznijmy od zdefiniowania zmiennej liczba
, która będzie przechowywać kolejno wyświetlane wartości liczbowe i przy okazji będzie zmienną sterującą dla naszej pętli while
. Niech wartością startową tej zmiennej będzie .
Zastanówmy się teraz, do jakiego momentu chcemy, aby nasza pętla działała. Skoro zaczynamy ciąg liczbowy od wartości , to pętla powinna się skończyć, gdy wartość zmiennej liczba
przekroczy wartość . Dodajmy do schematu ten warunek:
Jeśli wartość zmiennej liczba
mieści się w określonym przedziale, wypisujemy jej wartość na ekranie, zwiększamy jej wartość o i powracamy do sprawdzania warunku.
Jeśli wartość zmiennej liczba
przekroczy wartość , oznacza to, że cały zakres liczb, którego oczekiwaliśmy, został wypisany na ekranie. W takim momencie możemy zakończyć nasz algorytm.
Zazwyczaj warunek w pętli while
można zapisać na więcej sposobów, np. warunek liczba <= 10
można zapisać też w postaci liczba != 11
, a działanie pętli i rezultat będą takie same.
Wpisywanie kodu PIN w bankomacie
Wyobraźmy sobie, że piszemy program obsługujący bankomaty. Nasz schemat działania programu jest następujący:
Użytkownik podaje kod PINPIN swojej karty, aby móc potwierdzić, że jest właścicielem karty.
Jeśli kod PIN jest błędny, program prosi ponownie o wpisanie kodu (użytkownik ma łącznie trzy próby).
Jeśli trzy próby zakończą się błędem, wypisujemy komunikat o zablokowaniu dostępu do tego konta i kończymy algorytm.
Jeśli natomiast którakolwiek z prób się uda, wypisujemy komunikat o udanej identyfikacji i kończymy algorytm.
Zacznijmy standardowo od startu algorytmu i utworzenia zmiennej liczba_prob
przechowującej liczbę prób identyfikacji. Dodajemy też warunek sprawdzający, czy użytkownik próbował już 3‑krotnie uzyskać dostęp do konta.
Dopóki użytkownik nie przekroczył dostępnej liczby prób, program wczytuje od użytkownika kod PIN, który jest przechowywany w zmiennej kod_pin
.
Jeśli kod PIN jest poprawny, to uzyskujemy dostęp do konta i kończymy algorytm, a jeśli nie, wypisujemy informację o błędzie, zwiększamy wartość zmiennej liczba_prob
i ponawiamy operację.
W przypadku, gdy wszystkie próby okazały się błędne, blokujemy dostęp do konta i kończymy program.
Słownik
jest to akronim angielskiego wyrażenia Personal Identification Number (pol. osobisty numer identyfikacji); oznacza kod numeryczny służący do uwierzytelnienia, np. w telefonii komórkowej, bankowości itp.