JoePatent
Messages postés171Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention20 juillet 2008
-
31 juil. 2003 à 17:54
JoePatent
Messages postés171Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention20 juillet 2008
-
1 août 2003 à 15:36
Normalement, il ne faut pas changer les bornes d'une boucle For sans rencontrer des anomalies dont ton code est un exemple flagrant... Entre nous, à quoi te sert de savoir la valeur de cpt à la fin alors que c'est nbx ?
JoePatent
Messages postés171Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention20 juillet 2008 31 juil. 2003 à 19:21
J'ai obtenu ces resultats en simulant un traitement pour aider un autre utilisateur de ce site. Il voulait eliminer les lignes en doublon dans un document excel.
nbx est le nombre de ligne total. Mais en cours de traitement, tu elimines des lignes. Donc le nombre total de ligne decremente au fur et a mesure que l'on parcours les lignes. Moi j'ai mit un IF avec un modulo simplement pour voir l'effet sur les compteurs de décrementer le nbx...
Tk, je trouve tout meme ca tres etrange comme comportement. Je n'ai pas ca en C, en java ou en ADA...
Tk, je voulais simplement savoir si les expert de visual basic était au courant de cette anomalie...
JoePatent
Messages postés171Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention20 juillet 2008 1 août 2003 à 15:36
http://www.joepatent.comJoe Patent
Je voulais une reponse d'un expert... Désolé basic instinct mais tu ne t'es meme pas donné la peine d'executer le code... Mais tu repond a peu pres... ca m'aide pas du tout.
La stack d'une boucle for se construit au fur et a mesure des appels de celle-ci. Donc oui tu peux allegrement changer la valeur de la borne. C'est concu pour ça dans tout les langages que je connais.
L'exception ici, est la ré-initialisation des valeurs des compteurs après la sorties des boucles. La sorties est fait au bon moment, tout baigne. C'est simplement qu'à l'exterieur de la boucle, les compteurs reprennent la valeur initial de la borne (+1 evidement).