Könnte jemand bitte anhand von Beispielen erklären, was mit Schleife gemeint ist break 2
oder continue 2
bei PHP? Was heißt wann break
oder continue
folgt eine Zahl?
Was versteht man in PHP unter einer Zahl nach „break“ oder „continue“?
kn3l
Ihr gesunder Menschenverstand
$array = array(1,2,3);
foreach ($array as $item){
if ($item == 2) {
break;
}
echo $item;
}
gibt “1” aus, weil die Schleife war gebrochen für immer, bevor echo “2” drucken konnte.
$array = array(1,2,3);
foreach ($array as $item){
if ($item == 2) {
continue;
}
echo $item;
}
Ausgänge 13
weil die zweite Iteration war bestanden
$numbers = array(1,2,3);
$letters = array("A","B","C");
foreach ($numbers as $num){
foreach ($letters as $char){
if ($char == "C") {
break 2; // if this was break, o/p will be AB1AB2AB3
}
echo $char;
}
echo $num;
}
Ausgänge AB
durch break 2
, was bedeutet, dass beide Aussagen recht früh gebrochen wurden. Wenn das nur gerecht wäre break
wäre die Ausgabe gewesen AB1AB2AB3
.
$numbers = array(1,2,3);
$letters = array("A","B","C");
foreach ($numbers as $num){
foreach ($letters as $char){
if ($char == "C") {
continue 2;
}
echo $char;
}
echo $num;
}
wird ausgegeben ABABAB
durch continue 2
: Die äußere Schleife wird jedes Mal durchlaufen.
Mit anderen Worten, continue
stoppt die Ausführung der aktuellen Iteration, lässt aber eine andere laufen, während break
stoppt die ganze Anweisung vollständig.
Das können wir also ausschließen continue
gilt nur für die Schleifen, wohingegen break
kann in anderen Anweisungen verwendet werden, wie z switch
.
Eine Zahl steht für die Anzahl von verschachtelt Aussagen betroffen.
wenn es 2 verschachtelte Schleifen gibt, break
in der inneren bricht die innere (jedoch macht es sehr wenig Sinn, da die innere Schleife in der nächsten Iteration der äußeren Schleife erneut gestartet wird). break 2
in der inneren Schleife werden beide brechen.
Die Zahl sagt nur “aus wie vielen Zielfernrohren herausgesprungen werden soll”
<?php
for($i = 0; $i < 10; ++$i) {
for($j = 0; $j < 10; ++$j) {
break 2;
}
}
$i und $j werden 0 sein
Zitieren das Handbuch:
Continue akzeptiert ein optionales numerisches Argument, das angibt, wie viele Ebenen von umschließenden Schleifen bis zum Ende übersprungen werden sollen.
gleiches gilt für die pause.
-
Ich bevorzuge Ihre Antwort, einfach weil sie kurz und auf den Punkt gebracht ist.
– n8jadams
6. August 2019 um 16:22 Uhr
Unterbrechung akzeptiert ein optionales numerisches Argument, das angibt, aus wie vielen verschachtelten umschließenden Strukturen ausgebrochen werden soll.
<?php
$arr = array('one', 'two', 'three', 'four', 'stop', 'five');
while (list(, $val) = each($arr)) {
if ($val == 'stop') {
break; /* You could also write 'break 1;' here. */
}
echo "$val<br />\n";
}
/* Using the optional argument. */
$i = 0;
while (++$i) {
switch ($i) {
case 5:
echo "At 5<br />\n";
break 1; /* Exit only the switch. */
case 10:
echo "At 10; quitting<br />\n";
break 2; /* Exit the switch and the while. */
default:
break;
}
}
?>
Weitere Beispiele für Unterbrechung
fortsetzen akzeptiert ein optionales numerisches Argument, das angibt, wie viele Ebenen von umschließenden Schleifen bis zum Ende übersprungen werden sollen. Der Standardwert ist 1, wodurch zum Ende der aktuellen Schleife gesprungen wird.
<?php
while (list($key, $value) = each($arr)) {
if (!($key % 2)) { // skip odd members
continue;
}
do_something_odd($value);
}
$i = 0;
while ($i++ < 5) {
echo "Outer<br />\n";
while (1) {
echo "Middle<br />\n";
while (1) {
echo "Inner<br />\n";
continue 3;
}
echo "This never gets output.<br />\n";
}
echo "Neither does this.<br />\n";
}
?>
Shakti Singh
break : die innerste Schleife unterbrechen (Ausstieg aus der Schleife)
break 2 : Brechen Sie die 2 Schleifen der Verschachtelungsebene (Verlassen der 2 verschachtelten Schleifen)
Continue : Erzwingt die Schleife für die nächste Iteration, von wo aus sie verwendet wird, ohne den Rest des Schleifencodes auszuführen
Continue 2: Erzwingt die Schleife für die nächsten 2 Iterationen, von wo aus sie verwendet wird, ohne den Rest des Schleifencodes auszuführen
Verlassen Sie die Schleife, wenn wir uns begegnen $array
Wert 5 sein
break
$array(4,5,8);
for ($i=0 ;$i < 10 $i ++)
{
if ($array[$i]==5)
{
break;
}
}
Pause (n)
Verlassen Sie beide Schleifen, wenn wir auf den Wert 5 in $array stoßen;
for ($i=0 ;$i < 10 $i ++)
{
for($j=0; $j <10; $j++)
{
if ($array[$i][$j]==5)
{
break 2;
}
}
}
fortsetzen
Druckt die Nachricht, wenn der Wert 5 ist;
for($i=0; $i<10; $i++)
{
if ($array[$i] != 5)
{
continue;// will reach at the first line from here which is for($i=0;.....
}
echo 'This is five';
}
}