Programowanie/Podstawowe konstrukcje/Pętle

Z Wikibooks, biblioteki wolnych podręczników.

Pętle to rodzaj instrukcji pozwalających na wielokrotne powtórzenie wykonania zaprogramowanych operacji.

To właśnie pętle ukazują potęgę komputerów - raz napisany blok instrukcji może być dzięki nim wykonany setki, tysiące, miliony razy...

While[edytuj]

Jedną z pętli jest instrukcja while. Zapis

while WARUNEK:
    instrukcja 1
    instrukcja 2
     ...
    instrukcja n

powoduje następującą sytuację:

  • po osiągnięciu przez program instrukcji while sprawdzana jest wartość warunku. Jeżeli jest on prawdziwy wykonane zostaną instrukcje instrukcja 1, instrukcja 2, ... instrukcja n. Po wykonaniu ostatniej instrukcji w bloku while program wróci do miejsca sprawdzenia warunku - jeżeli nadal będzie on prawdziwy, ponownie zostaną wykonane instrukcje wewnątrz pętli. Jeżeli podczas kolejnego sprawdzenia warunku okaże się, że warunek jest fałszywy - program opuści pętlę przechodząc do instrukcji stojącej bezpośrednio po bloku while.

Przykłady[edytuj]

Przykład 1[edytuj]

Problem: wypisać na monitorze komputera pierwsze 100 liczb całkowitych.

Rozwiązanie: banalnym rozwiązaniem tego problemu jest napisanie programu posiadającego 100 linijek odpowiedzialnych za wypisanie kolejnych liczb całkowitych, ale przy wykorzystaniu pętli można to zrobić znacznie lepiej.

Na początek potrzebna jest zmienna, w której będziemy przechowywać wypisywaną aktualnie liczbę.

liczba = 0 

Teraz musimy zdecydować się, jaką postać powinna mieć nasza pętla.Musiałaby ona zacząć od wypisania aktualnej wartości zmiennej liczba, i zwiększeniu jej o jeden. W pierwszym przebiegu pętli na ekranie zostanie wypisana wartość zmiennej liczba, czyli0, a zmienna liczba przyjęła wartość 1. W drugim wykonaniu pętli wypisana zostanie 1, a zmienna liczba przyjmie wartość 2. Pętla ta musi być powtarzana, aż zmienna liczba nie osiągnie wartości 100.

while liczba<100:
     wypisz wartość zmiennej liczba

Przykład 2[edytuj]

Problem: wypisać na monitorze komputera następujący "wzór";

*
**
***
****
*****
******

Rozwiązanie: wykorzystamy w naszym rozwiązaniu tzw. pętlę w pętli. Na początek ustalimy zmienną w której przechowywany będzie numer aktualnie wypisywanego wiersza.

wiersz = 1

Następnie wykorzystamy pętlę while do wypisywania całych wierszy. W jaki sposób zapewnimy wypisywanie pojedynczych "gwiazdek"? Przy pomocy... drugiej pętli while! Schemat działania programu jest następujący:

  • dopóki wartość zmiennej wiersz jest nie większa niż zadana ilość (w naszym przypadku jest to liczba 6):
    • wypisz wiersz razy gwiazdkę, i przejdź do nowej linii
while wiersz<=6:
    i = 0
    while i<wiersz:
         wypisz "*"
         i = i + 1
    przejdź do nowego wiersza
    wiersz = wiersz + 1