continue-Anweisung
Teil des Abschnitts Grundlagen der PHP-Journey von Coddy — Lektion 52 von 71.
Während break eine Schleife vollständig beendet, möchten Sie manchmal nur die aktuelle Iteration überspringen und mit der nächsten fortfahren. Genau dafür dient die continue-Anweisung.
Wenn PHP auf continue trifft, springt es sofort zur nächsten Iteration der Schleife und überspringt den restlichen Code in der aktuellen Iteration.
<?php
for ($i = 1; $i <= 5; $i++) {
if ($i === 3) {
continue;
}
echo $i . "\n";
}
?>Dies gibt aus:
1
2
4
5Beachten Sie, dass 3 fehlt. Wenn $i gleich 3 ist, überspringt die continue-Anweisung das echo und geht direkt zur nächsten Iteration über, in der $i zu 4 wird.
Ein häufiger Anwendungsfall ist das Filtern unerwünschter Werte beim Verarbeiten eines Arrays:
<?php
$numbers = [10, -5, 8, -3, 12];
foreach ($numbers as $num) {
if ($num < 0) {
continue;
}
echo $num . "\n";
}
?>Das druckt nur die positiven Zahlen aus: 10, 8 und 12. Die negativen Werte werden übersprungen, aber die Schleife läuft durch alle Elemente weiter.
Der wesentliche Unterschied: break beendet die Schleife vollständig, während continue nur zur nächsten Iteration springt.
Aufgabe
EinfachLesen Sie zwei Zeilen der Eingabe:
- Eine durch Kommas getrennte Liste von Ganzzahlen (z. B.
3,7,12,5,8,20,15) - Eine Divisor-Zahl
Verwenden Sie eine foreach-Schleife, um durch das Array zu iterieren. Verwenden Sie continue, um Zahlen zu überspringen, die durch den gegebenen Divisor teilbar sind. Drucken Sie alle anderen Zahlen, jede in einer separaten Zeile.
Beispiel 1:
Wenn die Eingaben 1,2,3,4,5,6,7,8,9,10 und 3 sind, sollte die Ausgabe sein:
1
2
4
5
7
8
10(Die Zahlen 3, 6 und 9 werden übersprungen, da sie durch 3 teilbar sind)
Beispiel 2:
Wenn die Eingaben 10,15,20,25,30 und 5 sind, sollte die Ausgabe sein:
(Alle Zahlen sind durch 5 teilbar, daher wird nichts gedruckt)
Beispiel 3:
Wenn die Eingaben 7,14,21,10,5 und 7 sind, sollte die Ausgabe sein:
10
5Spickzettel
Die continue-Anweisung überspringt die aktuelle Iteration einer Schleife und geht zur nächsten über, ohne die Schleife vollständig zu verlassen.
Einfaches Beispiel mit for-Schleife:
<?php
for ($i = 1; $i <= 5; $i++) {
if ($i === 3) {
continue;
}
echo $i . "\n";
}
?>Dies gibt 1, 2, 4, 5 aus (überspringt 3).
Verwendung von continue mit foreach zum Filtern von Array-Werten:
<?php
$numbers = [10, -5, 8, -3, 12];
foreach ($numbers as $num) {
if ($num < 0) {
continue;
}
echo $num . "\n";
}
?>Dies druckt nur positive Zahlen (10, 8, 12) aus und überspringt negative Werte.
Wichtiger Unterschied: break verlässt die Schleife vollständig, während continue nur zur nächsten Iteration springt.
Probier es selbst
<?php
// Eingabe lesen
$input = trim(fgets(STDIN));
$divisor = intval(trim(fgets(STDIN)));
// Komma-separierten String in Array von Ganzzahlen umwandeln
$numbers = array_map('intval', explode(',', $input));
// TODO: Schreibe deinen Code unten
// Verwende eine foreach-Schleife, um durch $numbers zu iterieren
// Verwende continue, um Zahlen zu überspringen, die durch $divisor teilbar sind
// Drucke alle anderen Zahlen, jede in einer separaten Zeile
?>Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators