JE SUIS UN DEBUTANT EN INFORMATIQUE
je veux bien comprendre le mécanisme de fonctionnement de ce 2 boucles for et while et la diffrence entre eux si elle existe?
MERCI
JE SUIS UN DEBUTANT EN INFORMATIQUE
je veux bien comprendre le mécanisme de fonctionnement de ce 2 boucles for et while et la diffrence entre eux si elle existe?
MERCI
Bonjour,
Tu as une explication dans la FAQ PHP :
Comment faire une boucle ?
N1bus
Modérateur Web / PHP / Oddo (ex OpenERP)
Aucune demande technique ne sera traitée par MP . Merci
Memento Technique OpenERP en français
Tutoriel OpenERP : Réalisation d'un module et modification du Point De Vente
PHP/e-Commerce : Installation d'une solution de paiement en ligne SIPS-ATOS
pour formuler autrement : dans une boucle FOR...NEXT, tu détermines un compteur, son départ, son arrivée, et son incrément. En bref, tu sais à l'avance combien d'executions de la boucle tu vas faire. Ca facilite la boucle quand l'ensemble des informations est connues. Exemple : je fais un calcul par région, et je connais déjà le nombre de régions : FOR NUM_REGION = 1 TO NOMBRE_REGION......NEXT.
While permet de gérer dynamiquement les limites de la boucle. Il est plus puissant, mais le risque est de se tromper sur les conditions de sortie, et de "boucler" infiniment.
NUM_REGION = 1
WHILE NOM_REGION(NUM_REGION) <> ""
.....
NUM_REGION = NUM_REGION + 1
WEND
si tu oublies la ligne en vert, tu est cuit : ton programme "boucle". Mais c'est plus puissant, car on peut coder des conditions de sorties en tous genres, pas seulement sur un compteur.
A noter aussi que certains langages autorisent des sorties forçées de boucles FOR; genre EXIT FOR(en VB si ma mémoire ne me fait pas défaut). Reste que si avant la boucle tu ne connais pas de borne de fin pour celle-ci, le passage par WHILE est obligatoire.
à noter qu'en COBOL, le seul ordre de boucle est PERFORM.....UNTIL condition, qui est comme un while, sauf que l'on sort dès que la condition est vraie. Un WHILE condition sort dès que la condition est fausse.
Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
3)le temps de comprendre toutes les exigences, le projet est terminé
4)le temps de terminer le projet, les exigences ont changé
Et le serment de non-allégiance :
Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.
La première question serait : de quel langage parles-tu ? Selon le langage, la boucle for fait des choses légèrement différentes.
--
Jedaï
Bonjour,
en général on peut faire les mêmes choses avec ces deux boucles, c'est souvent la lisibilité qui change.
est équivalent à
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Pour i de 1 à N par pas p faire ...
Si tu connais les indices de début et de fin, c'est souvent plus lisible d'utiliser un boucle for. Si c'est une condition particulière, le while est souvent mieux adapté.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 i = 1 Tant que i <= N faire début ... i = i + p fin
Le plus simple est toujours de se poser la question "comment ferai je ?" ou "comment l'expliquerai je ?". Tu verras que pour résoudre ton problème tu utilisera souvent "pour" ou "tant que" ce qui te donnera une bonne indication.
Consignes aux jeunes padawans : une image vaut 1000 mots !
- Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
- Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
- ton poste tu dois marquer quand la bonne réponse tu as obtenu.
Salut,
On utilise for quand on sait au préalable le nombre d’itération, par contre dans la boucle while on n’a pas besoin de cette information.
Exemple montrant la différence entre les 2 boucles :
Si par exemple tu cherche l’élément x dans un tableau T, avec la boucle for tu dois parcourir tous le tableau pour voir est ce que x existe dans T, par contre avec while tu sors de la boucle dés que tu trouve le x.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Existe= faux; Pour i de 1 à N par pas 1 faire début si (T[i]=x) alors Existe=vrai;// si on a trouvé x pourquoi continuer la recherche fin.Si maintenant tu cherche le nombre d’apparition de l’élément x dans le tableau T, dans ce cas là la boucle for est mieux adaptée car tu est obligé de parcourir tous le tableau pour compter combien de x tu a dans le tableau T.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 i = 1 Existe=faux; Tant que x!=T[i] faire // une foi x trouvé sauter la boucle. début i=i+1; fin. Existe=vrai;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Existe= faux; Nb_x=0; Pour i de 1 à N par pas 1 faire début si T[i]=x alors début Existe=vrai; Nb_x=Nb_x+1; finsi; fin.On peut toujours avoir un while à partir d’un for mais l’inverse non !Code :
Pour i de 1 à N par pas p faire ...
est équivalent à
Code :
i = 1
Tant que i <= N faire
début
...
i = i + p
fin
La caractéristique principale de la boucle While est qu’elle teste sa condition avant d’exécuter son contenu c à d, si la condition n’est pas vérifié on sort directement de la boucle sans exécuter le contenu; par contre avec la boucle for une foi on rentre dans la 1ere itération on est obligé de faire toutes les itérations j’jusqu'à la fin.
Un thésard a souvent un problème de motivation jusqu'au moment où il aura un problème de temps....
Le tact dans l'audace c'est de savoir jusqu'où on peut aller trop loin. Cocteau
L'abjection la plus totale, ce n'est pas de trahir, c'est de ne jamais donner un commencement de réalité à ses rêves les plus fous. M. Moreau
Les indispensables : Les règles, , FAQ et tutos avant de poster, et !
Traduction de Linux Device Drivers 3 : venez participer
membre de l'April - Promouvoir et défendre les logiciels libres
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager