Problème de logique pour le boucle "For"


#1

Bonjour,

J’ai besoin d’un petit coup de pouce pour comprendre les conditions d’une boucle, je m’explique…

voici le code :

<?php
  for ($annee = 2004; $annee < 2050; $annee = $annee + 4) {
    echo "<p>$annee</p>";
  }
?>

oui c’est le premier exercice pour la boucle "for"
a l’écran il affichera de 2004 à 2048…

ce que j’ai du mal a comprendre c’est :

$annee = 2004, ok on passe instruction suivante,
$annee est plus petit que 2050, ok suivant
$annee reçois $annee +4 donc $annee = 2008

et pourtant il affiche 2004 en premier et non 2008…

pourriez vous m’éclairer svp…
temps que je ne comprend pas cela je reste bloqué.

Merci d’avance pour les explications qui vont suivre…


#2

L’année dans la variable est «2004». L’année prochaine à afficher sera «2008» lorsqu’il est dans la variable.

The year in the variable is ‘2004’. The next year to display will be ‘2008’ when it is in the variable.


#3

en fait il commence à 2004 parce que ta variable $annee est initialisé a 2004
si ta boucle été $i = 0 il aurai aussi commencer par zéro
apres je viens juste de me lever donc je sais pas trop si czst que tu demander :stuck_out_tongue:


#4

i still not understand why if the variable $annee get 2004+4, it shwo at first 2004 instead 2008…


#5

ok ca commence a 2004 mais en fin d’instruction il reçois +4,
tour 1 elle affiche 2004

tour 2 elle possede en memoir du tours précèdent $annee = $annee +4; en gros 2008
pour elle est réinitialisé a 2004 avec la première instruction…
$annee = 2004

ce que je demande c’est comme le “compilateur” vas interpréter/ traduire les requetes demandé…
j’ai plutot besoin de connaitre de façon detaillé, du pourquoi du comment sur chaque étape…
genre

Tour 1
étape1
etape2
etape3
etape4

Tour 2
etape1
etape2
etape3
etape4

c’est vraiment dans la logic d’execution que je me perd…

merci d’avance…

(moi je suis une vrais chauffe souris je dors le jours et vie la nuit)


#6

This is what prints out…

<p>2004</p><p>2008</p><p>2012</p><p>2016</p><p>2020</p><p>2024</p><p>2028</p><p>2032</p><p>2036</p><p>2040</p><p>2044</p><p>2048</p>  

The initial value is printed, right up to the last value less than 2050.

I’m still not sure what your question is, though.