Boucle pour

Résolu
lekludo Messages postés 121 Date d'inscription   Statut Membre Dernière intervention   -  
pampiou Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je suis un novice en programmation. J'ai un petit problème. considérons l'algorithme suivant
pour i allant de 0 à 10 faire
afficher(i);
finpour
quel est le contenu de la variable i après exécution de la boucle? 0 ou 10? merci d'avance

4 réponses

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
à ton avis ?
0
lekludo Messages postés 121 Date d'inscription   Statut Membre Dernière intervention   1
 
je connais franchement pas le résultat. Néanmoins je pense que le contenu de i est réinitialisée est-ce vrai?
0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
pourquoi serait il réinitialisé ?
En plus, là, on parle algorithme. Contrairement à ce que disent les autres, i ne vaut pas forcément 11, ça dépend de la manière de faire la boucle.
En C++, un variable peut être propre à une boucle, donc elle n'a pas de valeur à la sortie de la boucle.
0
pampiou Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   2
 
Bonjour,

Ni l'un ni l'autre en fait. Je m'explique.
Ton i varie de 0 à 10 dans ta boucle, ce sont tes valeurs extrêmes. Lorsque tu parcours la boucle la première fois, i vaut 0. A la fin, la programme fait automatiquement i=i(d'avant)+1 puis recommence la boucle. Au final, quand i = 10, tu réalises la boucle puis i=i+1 donc i vaut 11. Le programme compare alors la valeur de i avec les valeurs extrêmes que tu as choisies. 11 étant plus grand que 10, tu sors de la boucle et tu continues le programme.
Ta boucle sera en VB :

For i=0 to 10
'lignes d'instruction
Next
'A partir de là, i=11

J'espère avoir répondu à ta question. A bientôt.
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
'A partir de là, i=11

Euh ... si tu affiches i, il vaudra bien 10.
Je crois que je comprend ce que tu veux dire, mais pas vraiment ta façon de le dire. ^^
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Un petit test pour vérifier cela :
Sub test()
Dim i As Integer
For i = 0 To 10
Range("A" & i + 1).Value = i
Next
MsgBox i
End Sub

La MsgBox est bien située après la boucle et indiques...........


11
CQFD
0
MrSlave Messages postés 2587 Date d'inscription   Statut Membre Dernière intervention   147
 
Autant pour moi.
Je crois que je me suis planté. ^^
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
tu parles du : Range("A" & i + 1).Value? Rien à voir... Ca n'est pas cette ligne de code qui incrémente i . L'exemple était mal donné. Prends celui-ci, il n'y a pas de + 1 et on obtient bien 11 à la fin :
Sub test()
Dim i As Integer
For i = 0 To 10
MsgBox i
Next
MsgBox i
End Sub
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
pas de problème.
Figure toi qu'avant d'essayer je n'était vraiment pas sur du résultat...
0
lekludo Messages postés 121 Date d'inscription   Statut Membre Dernière intervention   1
 
merci bien ta réponse ma beaucoup servi je voulais juste savoir si i était a 11 a plus
0