Boucle for()

Mammouth du PHP | 686 Messages

29 oct. 2008, 13:09

J'ai un code qui fonctionne parfaitement, mais ce qu'il y a c'est que j'aime bien savoir ce que je code donnc je souhaitre savoir ce que signifie $i++ dans for
for($i = 0; $i < $page_en_cours; $i++)
et aussi pourquoi lorsque l'on fait un système d'affichage en plusieurs pages ou lorsqu'on effecture une boucle on utilise toujours la variable $i
Je ne sais pas si j'ai été clair lol

Merci d'avance

ViPHP
ViPHP | 2287 Messages

29 oct. 2008, 13:13

$i++
est équivalent à
$i=$i+1
. On appelle cela une incrémentation.

On utilise souvent $i comme indice (ou curseur) de boucle par habitude généralement acquise par les développeurs (on aime bien que l'index soit une variable avec un nom court), mais cela n'a rien d'obligatoire :-)
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Mammouth du PHP | 686 Messages

29 oct. 2008, 13:16

Merci beaucoup.
Ca parait plus logique maintenant, ca va reveiller peut etre une ame de developpeur qui sommeille en moi qui sait. Mais j'avoue que je codait comme ca à partir d'autres codes sans trop savoir leur signification
Merci beaucoup ! :lol:

ViPHP
ViPHP | 2287 Messages

29 oct. 2008, 13:35

Si le sujet t'intéresse je me permets même d'aller un peu plus loin, si on reprend la boucle for que tu nous donnais au départ :
for($i = 0; $i < $page_en_cours; $i++) {
  // Ici, on fait quelquechose d'intéressant
}
Cette écriture est équivalente à celle-ci :
$i = 0;
while($i < $page_en_cours) {
  // Ici, on fait quelquechose d'intéressant
  $i++;
}
Comme ça on voit bien le rôle des trois instructions de la boucle for :
- instruction initiale (avant la boucle)
- test de continuation (si vrai on continue, si non on arrête)
- instruction d'itération (passage à l'élement suivant)

Le tout bien séparé par des ; comme toute instruction en php.

Il est aussi intéressant de remarquer que dans cette boucle for, seule la deuxième instruction (le test) est réellement obligatoire. Les deux autres ne sont que des raccourcis d'écriture. Cela veut dire que :
for(;true;){
  // Cette boucle est valide et fonctionne, mais attention :
  // Quand on l'éxécute, elle ne se termine jamais !
}
if(!@work()){ Nespresso(); } else { what(); }
______________________________

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

29 oct. 2008, 13:54

Cette écriture est équivalente à celle-ci :
$i = 0;
while($i < $page_en_cours) {
  // Ici, on fait quelquechose d'intéressant
  $i++;
}
Il est aussi intéressant de remarquer que dans cette boucle for,
seule la deuxième instruction (le test) est réellement obligatoire.
Les deux autres ne sont que des raccourcis d'écriture.
Tout à fait !
D'ailleurs,...
for (;true;)
    { // Cette boucle est valide et fonctionne, mais attention :
      // Quand on l'éxécute, elle ne se termine jamais !
    }
équivaut à...
while (true)
      { // Ici, on fait quelque chose d'intéressant
      }
Bref, on boucle à l'infini... :langue:

Mammouth du PHP | 686 Messages

29 oct. 2008, 15:01

Merci beaucoup
Je doit dire que là tout s'eclaire, je ne voulais jamais m'aventurer dans les boucle while et for et là j'avour que je comprend beaucoup mieux !!

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

29 oct. 2008, 15:11

C'est surtout le titre du sujet qui est bête et non pas la question.

Attention à bien définir un titre en relation avec le problème soulevé.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

29 oct. 2008, 15:26

Ah ben oui, dis donc !
Je l'avais oubliée, celle-là ! :lol:

Modération :
sylvaing26, merci d'utiliser un titre clair et qui correspond bien à ta demande.
Les titres contenant "HELP !", "Aidez-moi", "J'ai un problème", "Ça marche pas",...
n'apportent rien à la compréhension de ta demande.

Par ailleurs, nous savons déjà par ton message que tu as besoin d'aide.

Tu peux corriger ton titre en éditant ton premier message.

Merci de prendre le temps de lire les règlements.


J'ai corrigé ton titre en éditant ton premier message. ;)

Mammouth du PHP | 686 Messages

29 oct. 2008, 15:31

Oups :shock: Sorry !
Je ne le referai plus si je tiens a ma tête !! :lol:

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

29 oct. 2008, 15:39

Surtout si...
while (true)
      { $moderateur->decapite($sylvaing26);
      }
:shock: :langue:

Mammouth du PHP | 686 Messages

29 oct. 2008, 15:42

lol pas mal !!! :langue:
Jvais me tenir alors :agenouille: