W budowie
Materiał edukacyjny · Informatyka

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>';
1. Ile części ma nagłówek for?
2. Kiedy kończy się pętla for?
3. Co robi krok $i++?

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>';
4. Kiedy while sprawdza warunek?
5. Czym różni się do-while?
6. Co grozi bez $i++ w while?

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>';
    }
}
7. Co robi continue w pętli?
8. Na którą pętlę działa break?
9. Co robi break 2?

Ćwiczenia