[php] Problème de boucle inférnale

steph70 -  
 steph70 -
Bonjour,

je me mets à php et jusque la pas de problème avec les variables, les conditions et les boucles.

Néanmoins, j'ai un soucis avec le "continue".

Quand je l'utilise, je fais une boucle inférnale et je ne vois pas pourquoi. C'est surement un truc tout con.

Mais si j'utilise sur le script suivant un "break" à la place du "continue", et bien pas de souci.


Mais si je fais un "continue" ca coince.

Pouvez vous m'indiquez ou je fais ma bétise svp ?

<script><?php
$z=12;
while ($z<=20)
{
if ($z==18)
{
print ('La variable $z est égale à ' .$z );
break;
}
print ("$z<br/>");
$z++;
}
?></script>

Amicalement
Steph70
A voir également:

3 réponses

Utilisateur anonyme
 
Salut,

<?php
$z=12;
while ($z<=20)
{
if ($z==18)
{
print ('La variable $z est égale à ' .$z );
}
print ("$z<br/>");
$z++;
}
?>


Ca fonctionne...
0
macgawel Messages postés 664 Date d'inscription   Statut Membre Dernière intervention   89
 
Bonjour.
while ($z<=20) {
   if ($z==18) {
      print ('La variable $z est égale à ' .$z );
      break;
   }
   print ("$z<br/>");
   $z++;
} 

SI $z = 18, tu fais le print et tu arrêtes la boucle WHILE
=> Affichage :
12
13
14
15
16
17
La variable $z est égale à 18

while ($z<=20) {
   if ($z==18) {
      print ('La variable $z est égale à ' .$z );
      continue;
   }
   print ("$z<br/>");
   $z++;
} 

CONTINUE => sert à aller directement à la fin d'une boucle.
Quand $z = 18, tu fais le print et tu reprends ta boucle WHILE, sans changer la valeur de $z. Du coup, on repasse la boucle, $z est toujours égal à 18, et on refait continue.
=> Boucle infinie...
"Solutions" :
- passer le $z++; avant le IF
- incrémenter $z dans le IF
0
steph70
 
Ah ok,

Je comprend mieux

Merci beaucoup

Amicalement
Steph70
0