Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/05/2011, 20h56   #1
Invité de passage
 
Homme
Développeur informatique
Inscription : avril 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur informatique
Secteur : Enseignement

Informations forums :
Inscription : avril 2011
Messages : 15
Points : 2
Points : 2
Par défaut continue; et incrementation dans une while loop !

bonjour tout le monde

y a t-il quelqu’un qui puisse me montrer pourquoi cette while loop ne fonctionne pas convenablement (se plante !!) :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<?php
$a = array("one","two","three");
$z = 0;
while ($z <= count($a)-1)
{
if ($a[$z]=="two")
	{
continue;
	}
echo $a[$z]."<br>";
$z++;
}
?>
et que ça ne fonctionne que si je la réécris comme ça ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<?php
$a = array("one","two","three");
$z = -1;
while ($z <= count($a)-2)
{
$z++;
if ($a[$z]=="two")
	{
continue;
	}
echo $a[$z]."<br>";
}
?>
j aimerais comprendre la logique !

merci infiniment !
el_bacha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2011, 23h17   #2
Membre confirmé
 
Avatar de polkduran
 
pablo duran
Consultant informatique
Inscription : décembre 2009
Messages : 148
Détails du profil
Informations personnelles :
Nom : pablo duran
Âge : 28
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Consultant informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2009
Messages : 148
Points : 266
Points : 266
quand tu fais un 'continue' le code qui est après ne s'exécute pas, donc quand tu as ta condition =='two' tu n'incrémentes pas ton compteur ($z) et il reste toujours sur "1", tu refais un tour de while et tu tombes encore avec $a[$z] qui vaut 'two' et ainsi de suite, tu ne sors jamais de ta boucle.

dans ton deuxième morceau de code tu incrémentes d'abord ton $z avant de faire la condition, donc, ça ne coince jamais.

il suffirait de mettre dans ton premier code un $z++ dans le if avant le 'continue' pour que ça marche.

j'espère que j'ai été clair
__________________
polkduran est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2011, 01h23   #3
Invité de passage
 
Homme
Développeur informatique
Inscription : avril 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur informatique
Secteur : Enseignement

Informations forums :
Inscription : avril 2011
Messages : 15
Points : 2
Points : 2


merci polkduran tu ma éclairé la lanterne

j ai mal compris la docu sur php.net

Citation:
continue

L'instruction continue est utilisée dans une boucle afin d'éluder les instructions de l'itération courante et de continuer l'exécution à la condition de l'évaluation et donc, de commencer la prochaine itération.
j ai cru que "continue" fais l’incrémentation elle même !

merci encore !
el_bacha est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h38.


 
 
 
 
Partenaires

Hébergement Web