50 votes

Qu'entend-on par un nombre après "break" ou "continue" en PHP?

Quelqu'un pourrait-il expliquer, avec des exemples, ce que l’on entend par boucle break 2 ou continue 2 en PHP? Qu'est-ce que cela signifie quand break ou continue est suivi d'un nombre?

85voto

$array = array(1,2,3);
foreach ($array as $item){
  if ($item == 2) {
    break;
  }
  echo $item;
}

sorties "1" cause de la boucle a été brisé à jamais, avant l'écho a été en mesure d'imprimer "2".

$array = array(1,2,3);
foreach ($array as $item){
  if ($item == 2) {
    continue;
  }
  echo $item;
}

sorties 13 provoquer le deuxième itération a été adopté

$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;
}

sorties AB cause de la pause 2 - les deux états était cassé assez tôt. Si c'était la pause, la sortie sera 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;
}

sortie ABABAB, à cause de continuer 2 - boucle externe sera transmise à chaque fois

en d'autres termes, continue arrête l'itération en cours d'exécution, mais permet à un autre pour courir, alors que break s'arrête intégralité de la déclaration jamais.
par conséquent, continue est applicable pour les boucles que tout break n'est pas

un certain nombre représente le nombre de imbriquée états concernés.
si il y a 2 boucles imbriquées, break dans l'intérieur de la cassera intérieure (cependant, il se lance à nouveau dans la prochaine itération de la boucle externe). break 2 dans l'intérieur de la cassera les deux.

33voto

edorian Points 22780

Le nombre indique simplement "combien d'étendues pour sortir de"

 <?php
for($i = 0; $i < 10; ++$i) {
    for($j = 0; $j < 10; ++$j) {
        break 2;
    }
}
 

$ i et $ j seront 0

Pour citer le manuel:

continue accepte un argument numérique facultatif lui indiquant le nombre de niveaux de boucles englobantes à ignorer jusqu'à la fin.

même chose pour la pause.

9voto

Somnath Muluk Points 10173

pause accepte une option argument numérique qui raconte combien imbriquée enfermant des ouvrages à éclaté de.

<?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;
    }
}
?>

Plus d'exemples de pause

continuer accepte une option argument numérique qui lui indique le nombre de niveaux que de l'enfermer les boucles, il doit passer à la fin de l'. La valeur par défaut est 1, donc de sauter à la fin de la boucle de courant.

<?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";
}
?>

Plus d'exemples de continuer

3voto

Framework Points 32799

pause : mettre fin à l'intérieure de la boucle (sortie de la boucle)

pause 2 : casser les 2 niveau d'imbrication des boucles (sortie de 2 boucles imbriquées)

continuer : la force de la boucle pour la prochaine itération de l'endroit où il est utilisé sans l'exécution reste de la boucle de code

continuer 2: la force de la boucle pour les 2 prochaines itération de l'endroit où il est utilisé sans l'exécution reste de la boucle de code

sortir de la boucle lorsque nous rencontrons $array de la valeur de la 5

 break
    $array(4,5,8);
    for ($i=0 ;$i < 10 $i ++)
    {
        if ($array[$i]==5)
        {
          break;
        }
    }

la rupture (n)

Exit les deux boucles lorsque nous rencontrons la valeur 5 dans $array;

for ($i=0 ;$i < 10 $i ++)
  {
    for($j=0; $j <10; $j++)
     {
            if ($array[$i][$j]==5)
            {
              break 2;
            }
     }
 }

continuer

Affiche le message lorsque la valeur est de 5;

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';
}

}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X