Instrukcja continue
Część sekcji Podstawy ścieżki PHP w Coddy. Lekcja 52 z 71.
Podczas gdy break całkowicie przerywa pętlę, czasem chcesz tylko pominąć bieżącą iterację i przejść do następnej. Właśnie to robi instrukcja continue.
Gdy PHP napotka continue, natychmiast przechodzi do następnej iteracji pętli, pomijając pozostały kod w bieżącej iteracji.
<?php
for ($i = 1; $i <= 5; $i++) {
if ($i === 3) {
continue;
}
echo $i . "\n";
}
?>To wyświetla:
1
2
4
5Zauważ, że brakuje 3. Gdy $i jest równe 3, instrukcja continue pomija echo i przechodzi bezpośrednio do następnej iteracji, w której $i przyjmuje wartość 4.
Częstym zastosowaniem jest odfiltrowywanie niepożądanych wartości podczas przetwarzania tablicy:
<?php
$numbers = [10, -5, 8, -3, 12];
foreach ($numbers as $num) {
if ($num < 0) {
continue;
}
echo $num . "\n";
}
?>To wypisuje tylko liczby dodatnie: 10, 8 i 12. Wartości ujemne są pomijane, ale pętla nadal przechodzi przez wszystkie elementy.
Kluczowa różnica: break całkowicie zatrzymuje pętlę, a continue pomija tylko bieżącą iterację.
Wyzwanie
ŁatwyWczytaj dwa wiersze danych wejściowych:
- Listę liczb całkowitych oddzielonych przecinkami (np.
3,7,12,5,8,20,15) - Liczbę będącą dzielnikiem
Użyj pętli foreach, aby iterować po tablicy. Użyj continue, aby pomijać liczby podzielne przez podany dzielnik. Wypisz wszystkie pozostałe liczby, każdą w osobnym wierszu.
Przykład 1:
Jeśli dane wejściowe to 1,2,3,4,5,6,7,8,9,10 oraz 3, dane wyjściowe powinny wyglądać następująco:
1
2
4
5
7
8
10(Liczby 3, 6 i 9 są pomijane, ponieważ są podzielne przez 3)
Przykład 2:
Jeśli dane wejściowe to 10,15,20,25,30 oraz 5, dane wyjściowe powinny wyglądać następująco:
(Wszystkie liczby są podzielne przez 5, więc nic nie zostaje wypisane)
Przykład 3:
Jeśli dane wejściowe to 7,14,21,10,5 oraz 7, dane wyjściowe powinny wyglądać następująco:
10
5Spróbuj swoich sił
<?php
// Wczytaj dane wejściowe
$input = trim(fgets(STDIN));
$divisor = intval(trim(fgets(STDIN)));
// Przekształć ciąg znaków rozdzielony przecinkami w tablicę liczb całkowitych
$numbers = array_map('intval', explode(',', $input));
// TODO: Napisz swój kod poniżej
// Użyj pętli foreach, aby przejść przez $numbers
// Użyj continue, aby pominąć liczby podzielne przez $divisor
// Wypisz wszystkie pozostałe liczby, każdą w osobnym wierszu
?>Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory porównania i logiczne
Operatory porównaniaRówność i tożsamośćOperatory logiczne — część 1Operatory logiczne — część 2Powtórka — prosta logika2Zmienne i typy danych
LiczbyCiągi znaków i cudzysłowyWartości logiczneKonwencje nazewnictwaPodsumowanie — inicjalizacja zmiennychPuste zmienneŁączenie ciągów znakówPobieranie danych od użytkownikaKonwersja na inne typy5Instrukcje warunkowe
Instrukcja ifIf - elseOperator trójargumentowyOperator null coalescingInstrukcja switchPodsumowanie — podejmowanie decyzji3Podstawowe operatory
Operatory arytmetyczneOperator moduloOperator potęgowaniaPrzypisanie złożoneInkrementacja/dekrementacjaPriorytet operatorówPowtórka — proste obliczeniaOperatory łańcuchów znakówPoćwicz samodzielnie: Kompilator PHP online