Pętla do while – jak używać?!

Pętla typu „do…while” powoduje zapętlenie blok kodu do czasu, aż nie zostanie spełniony określony warunek. Jeśli warunek nie zostanie spełniony pętla będzie powtarzać się w nieskończoność.

Przykładowa pętla:

<!DOCTYPE html>
<html>
<body>

<?php  
$i = 1;

do {
  echo $i;
  $i++;
} while ($i < 8);
?>  

</body>
</html>

Wynik działania pętli:

1234567

Analizując powyższy kod -> Widzimy, że warunkiem zakończenia pętli jest by $i miało wartość mniejszą od 8. Z pomocą funkcji $i++; zwiększamy wartość $i za każdym razem o 1. $i++; umieszczone jest po wypisaniu dlatego wynik działania pętli kończy się na „7”. Gdyby $i++; było przed wypisaniem w tedy ostatnią cyfrą była by 8 jednak pierwszą było by „2” a nie „1”.

Analogicznie możemy tworzyć inne podobne pętle. Dla przypomnienia symboli porównania:

> - większe
< - mniejsze
<= - mniejsze lub równe
>= - większe lub równe
= - równe

Przerwanie pętli z pomocą break

Czasami tworząc pętle chcemy dokonać jej zakończenie/ przerwania również w innym monecie niż ten określony na końcu. Do uzyskania takiego efektu przyda nam się „break”. Przykład:

<!DOCTYPE html>
<html>
<body>

<?php  
$i = 1;

do {
  if ($i == 4) break; // przerwanie pętli
  echo $i;
  $i++;
} while ($i < 6);
?>  

</body>
</html>

Wynik:

123

Jak widać kiedy $i osiągnęło wartość „4” pętla została przerwana.

Pominięcie elementu w pętli continue 

Podobnie jak przerywaliśmy wypisywanie liczb możemy również pominąć jakąś określoną. Do tego celu użyjemy „continue”.

<!DOCTYPE html>
<html>
<body>

<?php  
$i = 0;

do {
  $i++;
  if ($i == 3) continue; // pominięcie elementu w pętli
  echo $i;
} while ($i < 8);
?>  

</body>
</html>
1245678

W uzyskanym ciągu nie posiadamy numeru „3”.

Do czego może na się przydać ta pętla? Przykładowo po modyfikacji do wypisywania informacji z bazy danych, wraz z czymś w rodzaju uproszczonego filtra. Czyli nie wyrzucamy wszystko jak leci a jedynie treści spełniające określone kryteria.

źródła: https://www.w3schools.com/php/php_looping_do_while.asp