Programowanie/Podstawowe konstrukcje/Pętle
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
edytujJedną 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
edytujPrzykład 1
edytujProblem: 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
edytujProblem: 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