: For ... Next et fouttage de gueule [VB] - Programmation
Marsh Posté le 22-05-2001 à 11:05:14
t'es sur que ca marche les boucles For avec des nombres qui ne sont pas des entiers??? 
 
personnellement j'ai jamais vu ca...
Marsh Posté le 22-05-2001 à 11:13:46
fin  meme si ca marche... 
 
qd tu utilises de nombres réels faut tjs avoir à l'esprit que ce ne sont pas des nombres "ronds" 
autrement dit tu as un step de 0.1  mais en réalité tu as un step de 0.10000001   'fin un truc du genre... et c'est de la que pourrait provenir ton erreur
Marsh Posté le 22-05-2001 à 11:15:30
Oui, sans doute que: 
0.1 + 0.1 + 0.1 + 0.1 + 0.1 > 0.5 
Remplace le 0.5 par 0.51.
Marsh Posté le 22-05-2001 à 11:59:47
Tu dois pas être avec le dernier service pack 
car j'ai essayé et j'ai bien 2 fois 6 messages 
Je suis en SP4
Marsh Posté le 22-05-2001 à 12:02:34
 
 
le probleme c'est que ce source proviens d'un test que j'ai réalisé. 
dans mon code c'est pas 0.5 que j'ai, mais une variable ... 
je suis dans la m***e alors ...
Marsh Posté le 22-05-2001 à 12:03:15
ReplyMarsh Posté le 22-05-2001 à 12:11:19
Tu fais : 
 
For i = 0 To MAX+PAS/2 Step PAS 
    MsgBox("Test2" )  
Next i  
 
et ça devrait marcher !!!
Marsh Posté le 22-05-2001 à 12:28:21
hehe ... j'ai justement une variable PAS  
 
en fait j'ai une bidouille de ce genre, liée à MAX que je bidouille plus haut ... 
je voulais surtout savoir pkoi VB il peut pas ... 
merci bien les gars
Marsh Posté le 22-05-2001 à 12:34:21
Pour la clarté de ton code, il est bon d'avoir une règle de nommage pour les variables. C'est plus long à écrire mais plus facile à lire. Moi j'utilise une adaptation perso de la notation hongroise qui donne qq chose du genre : 
IntVar pour un entier court 
LongVar pour un entier long 
StrVar pour une chaine de caractères 
RealVar pour un réel 
etc etc, à adapter à chaque logiciel de développement. 
 
C'était juste pour répondre au fait que tu avais une variable nommée Pas !!!
Marsh Posté le 22-05-2001 à 14:18:47
Et bien pour moi ca marche... 
6 fois pour Test1 et 6 fois pour test2 
 
Donc bizarre... peut etre un bug corrigé sur ma version VB6 SP5
Marsh Posté le 22-05-2001 à 10:15:51
p****n je comprenais pas l'erreur dans mon algo et elle vient de la maniere tordue dont fonctionne le for ... next :
il est écrit dans l'aide :
"condition d'éxecution de la boucle : si le pas est positif, counter <= end"
ici counter c'est i et end c'est soit 5 soit 0.5
et ... Test1 s'affiche 6 fois : normal
mais Test2 s'affiche 5 fois : pourquoi ?
---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite