[VBScript] [RESOLU] Boucle Do ... Loop

Boucle Do ... Loop [VBScript] [RESOLU] - VB/VBA/VBS - Programmation

Marsh Posté le 27-02-2006 à 15:48:04    

J'ai encore un souci ! :'(
 
j'ai déjà utilisé la boucle do loop, avec until et while sans que ça me pose problème.
 
mais maintenant depuis un petit moment déjà, je n'arrive pas à sortir de la boucle.
 
juste pour tester, j'ai pris un script deja fait, il fonctionne :
 
 var = InputBox("nb","nb","5" ) '(j'ai rajouté cette ligne pour mettre var a la place de 10)
 
 Check = True: Counter = 0   ' Initialise les variables.
 Do                             ' Boucle externe.
   Do While Counter < 20      ' Boucle interne.
      Counter = Counter + 1   ' Incrémente le compteur.
      WScript.Echo counter
      If Counter = var Then    ' Si la condition vaut True...
         Check = False        ' Affecte la valeur False à l'indicateur.
         Exit Do              ' Quitte la boucle interne.
      End If
   Loop
Loop Until Check = False
 
 
avec 10 a la place de var, je pouvais sortir de la boucle, mais dès que je met une variable à sa place il n'en fini pas de m'afficher la suite des nombres, et meme au dela de 20
 
meme avec les lignes que j'avais faites, ça ne marche pas :
 
cumul = 0
var = InputBox("nb","nb","5" )
Do until var = cumul
WScript.Echo var & " " & cumul
      cumul = cumul + 1
      If var = cumul Then
        Exit Do
      End If
Loop
 
normalement, ça devrait me sortir de la boucle au bout de 5 passages.
en plus je met un IF qui fait un EXIT DO quand la variable est egale au ce qu'on a saisi


Message édité par anthony0000 le 27-02-2006 à 16:53:02
Reply

Marsh Posté le 27-02-2006 à 15:48:04   

Reply

Marsh Posté le 27-02-2006 à 15:51:34    

Hello,
Ca fait un petit moment que je ne fais plus de VBscript, mais est ce que ca ne pourrait pas venir du fait que "var" est une chaine de caractere et non pas un entier ?


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
Reply

Marsh Posté le 27-02-2006 à 15:58:36    

tu as raison, si je met directement 'var = 10' je sors au bout de 10 fois
mais je ne sais pas comment déclarer une variable en entier
ça ne fonctionne pas de la façon 'dim var as integer'
 
je vais chercher ça
 
merci pour le coup de pouces ! ^_^

Reply

Marsh Posté le 27-02-2006 à 16:52:31    

trouvé !
 
 
cumul = 0  
var = InputBox("nb","nb","5" )
nb = Int(var)
Do until nb = cumul  
      cumul = cumul + 1  
      WScript.Echo nb & " " & cumul  
 
      If nb = cumul Then  
        Exit Do  
      End If  
Loop  
 
 
c'etait le int !!!

Reply

Marsh Posté le 27-02-2006 à 18:36:04    

salut anthony
 
si tu mets un do until il n'est pas utile de mettre un if pour tester si tu dois sortir de ta boucle...
 
Pour une boucle avec incrementation utiliser un for serait peut-être plus judicieux ...

Code :
  1. for cumul = 1 to Int(var) step 1
  2. WScript.echo Int(var) & " " & cumul
  3. next cumul


 
@+


Message édité par watashi le 27-02-2006 à 18:36:53
Reply

Marsh Posté le 28-02-2006 à 09:06:57    

hello !
 
c'est vrai que je ne fais pas tout pour l'optimisation.
(et j'ai complètement oublié le for)
 
je verrais quand à la proposition que tu me donnes.
 
merci !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed