CZĘŚĆ 04
Pętle (for, while, do...while)
PPrezentacja dla nauczyciela
Podstawa każdej powtarzalnej struktury HTML: tabeli, listy i menu. Umiejętność, o którą pytają w prawie każdym zadaniu egzaminacyjnym INF.03.
Pętla for i licznik
Pętla for ma trzy części: wartość początkową, warunek trwania i krok. Wszystkie mieszczą się w nawiasie i oddzielamy je średnikami.
Liczmik $i jest zwykłą zmienną, więc można go wypisać w środku pętli. Pętla kończy się w chwili, gdy warunek przestaje być prawdziwy — przy $i <= 5 wykona się pięć razy.
Do powtarzania stałego fragmentu HTML używamy pętli wokół znaczników albo zamykamy PHP i wracamy do niego w środku. Oba sposoby dają ten sam efekt.
for ($i = 1; $i <= 5; $i++) {
echo '<p>Lekcja numer ' . $i . '</p>';
}
echo '<ul>';
for ($i = 1; $i <= 3; $i++) {
echo '<li>Punkt ' . $i . '</li>';
}
echo '</ul>';
while i do-while
while sprawdza warunek przed każdym obrotem — jeśli na starcie jest fałszywy, pętla nie wykona się ani raz. do-while sprawdza po wykonaniu bloku, więc zawsze obróci się przynajmniej raz.
W pętli while trzeba samodzielnie zmieniać zmienną sterującą. Zapomniany $i++ daje pętlę nieskończoną i zawieszenie skryptu.
while jest wygodniejszy, gdy nie znamy liczby powtórzeń — na przykład gdy wczytujemy kolejne wiersze z pliku albo czekamy na poprawną wartość.
$i = 1;
while ($i <= 3) {
echo '<p>Obrót ' . $i . '</p>';
$i++;
}
$proba = 0;
do {
$proba++;
} while ($proba < 2);
echo '<p>Prob: ' . $proba . '</p>';
break, continue i pętle zagnieżdżone
break natychmiast kończy pętlę, a continue pomija resztę obrotu i przechodzi do następnego. Oba przydają się, gdy w środku pojawia się warunek wyjątkowy.
W pętli zagnieżdżonej break działa tylko na tę wewnętrzną. Jeśli chcesz przerwać obie, użyj break 2 albo przenieś logikę do funkcji.
Pętle zagnieżdżone dobrze sprawdzają się przy tabelach: zewnętrzna odpowiada za wiersze, wewnętrzna za komórki. Pilnuj wtedy dwóch różnych liczników.
for ($w = 1; $w <= 3; $w++) {
if ($w === 2) {
continue;
}
echo '<p>Wiersz ' . $w . '</p>';
}
for ($w = 1; $w <= 3; $w++) {
for ($k = 1; $k <= 2; $k++) {
if ($k === 2) {
break;
}
echo '<span>' . $w . '.' . $k . ' </span>';
}
}
Ćwiczenia
- 1Powtórz komunikatpętla powtarzająca tekstZadanie i podpowiedzi →
- 2Licznik w liście numerowanejnumer w liście punktowanejZadanie i podpowiedzi →
- 3Numery wierszy w tabelilicznik wierszy tabeliZadanie i podpowiedzi →
- 4Tabela z nagłówkiem i wierszaminagłówek i wiersze tabeliZadanie i podpowiedzi →
- 5Lista rozwijana generowana pętląlista rozwijana selectZadanie i podpowiedzi →
- 6Tabela potęgtabela potęg w pętli forZadanie i podpowiedzi →
- 7Tabliczka mnożenia dla jednej liczbypętla wypisująca iloczynyZadanie i podpowiedzi →
- 8Suma liczb w zakresiesuma liczb w pętliZadanie i podpowiedzi →
- 9Parzyste w zakresie — liczba i sumalicznik i suma w jednej pętliZadanie i podpowiedzi →
- 10Pomiń wielokrotności trzycontinue w pętliZadanie i podpowiedzi →
- 11Zatrzymaj pętlębreak przerywa pętlęZadanie i podpowiedzi →
- 12Pętla whilepętla while z licznikiemZadanie i podpowiedzi →
- 13Lista numerowana pętlą whilelista numerowana pętlą whileZadanie i podpowiedzi →
- 14Pobieranie porcji budżetu pętlą whilepętla sterowana budżetemZadanie i podpowiedzi →
- 15Kolejka zgłoszeń w tabeli pętlą whiletabela z pętli whileZadanie i podpowiedzi →
- 16Pętla do whiledo…while wykonuje razZadanie i podpowiedzi →