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 .

RMj24jSDvxBBr1
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

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:

RIpGS8nGxCEV1
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

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.

R1Xe0j9rCrNJZ
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

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.

RZl1bUb6D3cJ2
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Ważne!

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:

  1. Użytkownik podaje kod PINPINPIN swojej karty, aby móc potwierdzić, że jest właścicielem karty.

  2. Jeśli kod PIN jest błędny, program prosi ponownie o wpisanie kodu (użytkownik ma łącznie trzy próby).

  3. Jeśli trzy próby zakończą się błędem, wypisujemy komunikat o zablokowaniu dostępu do tego konta i kończymy algorytm.

  4. 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.

RJpnIL7wsterf
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

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.

RPL3mQH2ogW7D
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

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ę.

RxupbTfSluNEd1
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

W przypadku, gdy wszystkie próby okazały się błędne, blokujemy dostęp do konta i kończymy program.

RQPC6J4nTxnBS1
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Słownik

PIN
PIN

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.