Boucle pour

Résolu
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

  • Votes
  • Date
  • Date décroissante
  1. merci bien ta réponse ma beaucoup servi je voulais juste savoir si i était a 11 a plus
    1. 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.
      1. '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. ^^
      2. Modérateur
        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
      3. Autant pour moi.
        Je crois que je me suis planté. ^^
      4. Modérateur
        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
      5. Modérateur
        pas de problème.
        Figure toi qu'avant d'essayer je n'était vraiment pas sur du résultat...
    2. je connais franchement pas le résultat. Néanmoins je pense que le contenu de i est réinitialisée est-ce vrai?
      1. Contributeur
        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.