For Schleife VBS
Mark
- programmiertechnik
Hallo,
habe testweise mal folgende Schleife mit Ausgabe in VBS geschrieben:
Dim i
For i = 25 To 31
Next
Wscript.Echo i
Warum gibt er mir 32 aus? Er sollte doch nur bis 31 zählen?!
Brauch unbedingt die Zahlen 25 bis 31 in der Schleife um eine Auswertung zu machen, dabei ist mir das Prob aufgefallen.
Hallo,
habe testweise mal folgende Schleife mit Ausgabe in VBS geschrieben:
Dim i
For i = 25 To 31 ' impliziert Step 1
Next
Wscript.Echo i
> Warum gibt er mir 32 aus? Er sollte doch nur bis 31 zählen?!
Das ist ganz normal. i wird in der Schleife immer um 1 erhöht, bis i größer ist als die obere Grenze, d.h. bis die implizite Schleifenbedingung nicht mehr erfüllt ist.
Wenn Du unbedingt \*nach\* der Schleife die Schleifenvariablen ausgeben möchtest und diese den letzten erlaubten Wert haben soll, dann subtrahiere die Schrittweite vom aktuellen Wert.
Freundliche Grüße
Vinzenz
Hi Vinzenz,
Wenn Du unbedingt *nach* der Schleife die Schleifenvariablen ausgeben möchtest und diese den letzten erlaubten Wert haben soll, dann subtrahiere die Schrittweite vom aktuellen Wert.
richtig, aber ich glaube der OP fängt erst an zu programmieren und deine Antwort scheint ihm "wahrscheinlich" nicht viel bringen. Er sollte sich eher fragen was erreicht werden soll und wie und warum eine Schleife läuft und welche Werte man aus dieser erhalten kann.
richtig, aber ich glaube der OP fängt erst an zu programmieren und deine Antwort scheint ihm "wahrscheinlich" nicht viel bringen. Er sollte sich eher fragen was erreicht werden soll und wie und warum eine Schleife läuft und welche Werte man aus dieser erhalten kann.
Hallo,
es bringt mir doch was, ein bisschen kenne ich mich schon aus, diese Tatsache ist mir aber heute zum ersten mal aufgefallen, da ich normalerweise die Schleifenvariable nie außerhalb der Schleife auswerte ;-) Ist hier mehr oder weniger auch nur Zufall gewesen, eigentlich brauche ich das auch gar nicht. War reine Interesse. Vielen Dank.
Hi,
es bringt mir doch was, ein bisschen kenne ich mich schon aus, diese Tatsache ist mir aber heute zum ersten mal aufgefallen, da ich normalerweise die Schleifenvariable nie außerhalb der Schleife auswerte ;-) Ist hier mehr oder weniger auch nur Zufall gewesen, eigentlich brauche ich das auch gar nicht. War reine Interesse. Vielen Dank.
ok, das freut mich. Trotzdem möchte ich mich bei Vinzenz entschuldigen!
In diesem fall war der Thread natürlich sehr hilfreich!
Hi,
Dim i
For i = 25 To 31
Next
Wscript.Echo i
du musst dein ` Wscript.Echo i `{:.language-javascript} in der Schleife eintragen.
Die Schleife läuft sonst x-mal durch -bis 31-, danach kommt dann deine Ausgabe mit dem endergebnis 31.
Wenn du es in die Schleife schreibst wird i von 25 - 31 aktualisiert und ausgegeben:
~~~javascript
Dim i
For i = 25 To 31
Wscript.Echo i
Next
Zudem solltest du die Variable i als "Integer" deklarieren.
Hallo,
» ~~~javascript
Dim i
» For i = 25 To 31
» Next
» Wscript.Echo i
> Zudem solltest du die Variable i als "Integer" deklarieren.
in diese Falle bin ich auch mal getappt. [VBScript hat nur einen Datentyp](http://msdn.microsoft.com/en-us/library/9e7a57cf(VS.85).aspx), nämlich Variant, daher ist die einfache Anweisung
[Dim](http://msdn.microsoft.com/en-us/library/zexdsyc0(VS.85).aspx) i
schon richtig.
Freundliche Grüße
Vinzenz