PHP do while: zasada działania pętli do… while

Coś jest niejasne? Wejdź na Forum PHP i uzyskaj pomoc

Pętla do… while

PHP do while jest odpowiednikiem pętli php while, który działa na tej samej zasadzie. Jedyna różnica tkwi w momencie sprawdzania warunku. Podczas gdy while robił to zaraz na początku, do… while dokonuje sprawdzania po zakończeniu instrukcji. Wynika z tego fakt, ze niezależnie, czy warunek zwróci true czy false, pętla wykona sie przynajmniej jeden raz.

Są przypadki, że pozwala to uniknąć duplikowania kodu, który byłby nieunikniony w przypadku korzystania wyłącznie z pętli while. Podkreślę raz jeszcze – pętli do while używamy wtedy, gdy chcemy wykonać instrukcję przynajmniej raz – niezależnie od spełnienia warunku.

Struktura pętli do while w PHP wygląda następująco:

<?php
$zmienna = 200;
do // instrukcje do wykonania
{
  echo $zmienna;
  $zmienna++;
} 
while($zmienna < 101) // warunek kontynuacji pętli
?>

Powyższy przykład odwołuje się do problemu przedstawionego w poprzedniej lekcji. Jak widać, w tym przypadku pętla do… while nie spełnia zamierzonego zadania. Nieważne, czy $zmienna jest większa czy mniejsza od 101, zmienna zostanie wyświetlona przynajmniej raz. Z racji, że chcieliśmy wyśwetlić ciąg liczb do 100, pokazanie liczby większej niż 100 jest niepożądane.

Są jednak przypadki, kiedy wygodniej jest użyć do… while, zamiast while.

W programowaniu nie ma jednej, wyznaczonej, najlepszej drogi. Często jedno zadanie można wykonać przy pomocy różnych technik. Tak naprawdę każdą pętlę można zastąpić inną, zmieniając nieco warunki i przebudowując program. Przy każdej otrzymamy zamierzony efekt.

Wszystko sprowadza się do zrozumienia sposobu działania i inteligentnego użycia nabytej wiedzy.

Na koniec zobacz szybkie ćwiczenie. Chcemy wypisać wszystkie liczby mniejsze od $zmienna, ale większe od 0. Z tym dodatkowym warunkiem, że liczba $zmienna ma być zawsze wyświetlona na początku (niezależnie czy jest dodatnia czy ujemna). Przykładowa realizacja z pętlą do while w PHP:

<?php
$zmienna = -10;
do // instrukcje do wykonania
{
  echo $zmienna;
  $zmienna--;
} 
while($zmienna > 0) // warunek kontynuacji pętli
?>

W tym przypadku, nawet gdy zmienna wynosi -10, jej wartość zostanie wyświetlona. Gdy kod dojdzie do warunku, nie będzie on spełniony. Jednak pierwszy przebieg się wykona i na ekranie zobaczymy -10.

Na następnej lekcji przedstawię bardzo użyteczną pętlę for. Zapraszam serdecznie.

Spis lekcji w rozdziale drugim

Poprzednia lekcja: Pętla while Następna lekcja: Pętla for