Die continue-Anweisung in PHP
Neben der break-Anweisung, die
die Schleifenarbeit beendet, gibt es auch die
continue-Anweisung, die eine neue Iteration
der Schleife startet. Diese Anweisung kann manchmal
nützlich sein, um den Code zu vereinfachen, obwohl
die Aufgabe fast immer auch ohne sie gelöst werden kann. Lassen Sie uns
ein praktisches Beispiel ansehen.
Nehmen wir an, wir haben ein Array mit Zahlen. Lassen Sie uns
es mit einer Schleife durchlaufen und Zahlen, die durch
2 teilbar sind, quadrieren und
auf dem Bildschirm ausgeben, und Zahlen, die durch 3
teilbar sind, in die dritte Potenz erheben und auf dem Bildschirm ausgeben.
Hier ist die Lösung der beschriebenen Aufgabe:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
foreach ($arr as $elem) {
if ($elem % 2 === 0) {
$res = $elem * $elem;
echo $res;
} elseif ($elem % 3 === 0) {
$res = $elem * $elem * $elem;
echo $res;
}
}
?>
Wie Sie sehen, wird die Zeile echo $res
zweimal wiederholt. Lassen Sie uns sie
aus dem if herausnehmen, so:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
foreach ($arr as $elem) {
if ($elem % 2 === 0) {
$res = $elem * $elem;
} elseif ($elem % 3 === 0) {
$res = $elem * $elem * $elem;
}
echo $res; // Ausgabe aus der Bedingung herausgenommen
}
?>
Allerdings funktioniert unser Skript jetzt etwas
anders: Es stellt sich heraus, dass auch für normale Elemente,
die nicht durch unser if verarbeitet wurden,
die Variable $res
auf dem Bildschirm ausgegeben wird, was laut der Bedingung unserer Aufgabe
nicht erforderlich ist.
Korrigieren wir das Problem, indem wir zu unserem if
eine weitere else-Bedingung hinzufügen,
die für Elemente gilt, die nicht durch 2 und
3 teilbar sind, und rufen dort die continue-Anweisung auf,
die uns sofort
zum nächsten Schleifendurchlauf springen lässt:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
foreach ($arr as $elem) {
if ($elem % 2 === 0) {
$res = $elem * $elem;
} elseif ($elem % 3 === 0) {
$res = $elem * $elem * $elem;
} else {
continue; // gehe zum nächsten Schleifendurchlauf
}
echo $res; // wird ausgeführt, wenn durch 2 oder 3 teilbar
}
?>
Schreiben Sie eine Schleife, die nur
gerade Zahlen von 1 bis 100 ausgibt
und ungerade Zahlen mit continue überspringt.