Merkwürdiges ergebniss bei For Schleife
Übersicht

FruscianteBetreff: Merkwürdiges ergebniss bei For Schleife |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
Code: [AUSKLAPPEN] For w = 0 To 10 enemy(q,4) = EntityDistance(enemy(q,0),ally(w,0)) Next Text3D(Font,-400,+170,"w " + w,0,0,0) bei mir ist w = 11. Mir ist zwar klar das es 11 Schleifendurchläufe sind, aber w sollte doch trotzdem am Ende 10 sein wenn er die 0 mit zählt oder nicht? grüße Frusciante |
||
![]() |
Progger93 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Soweit ich weiß wird der Zähler am Ende der Schleife um 1 erhöt
Passiert bei mir ebenso |
||
MfG Pascal
Win 7|T7250@2.0Ghz|3GB RAM|M8600GT |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, da eine For Schleife so aussieht:
BlitzBasic: [AUSKLAPPEN] w=0 Somit ist w beim Verlassen der Schleife 11. MfG Der Eisvogel |
||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oder anders ausgedrückt:
Code: [AUSKLAPPEN] For i = 1 to 1 läuft 1 mal durch
Code: [AUSKLAPPEN] For i = 0 to 1 läuft 2 mal durch
Code: [AUSKLAPPEN] For i = 0 to 10 läuft 11 mal durch
Für 10 Durchläufe machs so: Code: [AUSKLAPPEN] For i = 1 to 10 läuft 10 mal durch
Code: [AUSKLAPPEN] For i = 0 to 9 läuft 10 mal durch
|
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
@SpionAtom: Wenn du For i=1 to 10 machst, so wird i am Schluss auch wieder 11 sein ![]() |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oh man, das kommt davon, wenn man die Frage nicht richtig liest...
Never mind. |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@Der Eisvogel
Troßdem hat SpionAtom recht. Die Variable i wird zum beginn der Schleife mit dem Wert i=1 Initalisiert und dann wird 10 mal 1 dazuaddiert und dann kommt man halt auf 11 |
||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das hab ich jetzt nicht kapiert. | ||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Macht nix, er auch nicht ![]() |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
hazumu-kun |
![]() Antworten mit Zitat ![]() |
---|---|---|
Am ENDE Der Schleife wird i=i+1 ausgeführt.
Am ANFANG wird aber erst geprüft ob i noch im festgelegtem Bereich ist. |
||
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann -> nicht omnipotent |
DjDETE |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
viken_emesh hat Folgendes geschrieben: Am ENDE Der Schleife wird i=i+1 ausgeführt.
Am ANFANG wird aber erst geprüft ob i noch im festgelegtem Bereich ist. Und somit ist der letzte w-Wert, der in der Schleife verwendet wird 10, obwohl w zum Schluss 11 ist. MfG |
||
Aktuelles Projekt: XXX |XXX | 3% der v1b fertig
www.emu-soft.de.vu Für die Homepage suche ich noch Linktauschpartner, bei Interesse einfach melden. |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
DjDETE hat Folgendes geschrieben: Und somit ist der letzte w-Wert, der in der Schleife verwendet wird 10 Ja, aber: Das erhöhen des Wertes gehört zur Schleife dazu.
For Schleifen lassen sich auch in anderen Schleifen ausdrücken: Code: [AUSKLAPPEN] Local a
For a = 1 To 2 Print "in der Schleife: " +a Next Print "Nach der Schleife: " +a a = 1 Repeat Print "In der Schleife: " +a a = a +1 Until Not (a <= 2) Print "Nach der Schleife: " +a a = 1 While a <= 2 Print "In der Schleife: " +a a = a +1 Wend Print "Nach der Schleife: " +a WaitKey() |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
hazumu-kun |
![]() Antworten mit Zitat ![]() |
---|---|---|
DjDETE hat Folgendes geschrieben: viken_emesh hat Folgendes geschrieben:
Am ENDE Der Schleife wird i=i+1 ausgeführt.
Am ANFANG wird aber erst geprüft ob i noch im festgelegtem Bereich ist. Und somit ist der letzte w-Wert, der in der Schleife verwendet wird 10, obwohl w zum Schluss 11 ist. MfG Neien? Wenn w=10 ist wird die Schleife noch ein letztes mal durchlaufen und am Ende i=i+1 ausführen. Dann ist die Abbruchbedingung erfüllt. |
||
Warum kann es keine omnipotente Macht geben?
Weil diese omnipotente Macht in der Lage sein müsste, einen so schweren Stein zu schaffen, dass sie ihn nicht heben kann -> nicht omnipotent |
DjDETE |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das hab ich ja gemeint, dass der wert 11 dann nichtmehr benutzt wird für das was er will... | ||
Aktuelles Projekt: XXX |XXX | 3% der v1b fertig
www.emu-soft.de.vu Für die Homepage suche ich noch Linktauschpartner, bei Interesse einfach melden. |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Variablen, die sich innerhalb eines Strukturbereiches (wie der For-Schleife) befinden, sollte man nicht auch außerhalb weiter benutzen. Wenn man aber den Wert benötigt (warum auch immer), sollte man dann eine zusätzliche Übertragungsvariable benutzen. Diese kann man sich aber sparen, da nur folgendes passieren kann:
1) Statische Angabe Code: [AUSKLAPPEN] For W=0 to 9
Next Die ''9'' ist hardcoded und kann dann genauso hardcoded unter wieder eingesetzt werden 2) Variable Angabe Code: [AUSKLAPPEN] For W=0 to E
Next Das ''E'' ist varaibel und wird letztendlich weiter unten benötigt. Also nimmt man diese statt ''W'' So einfach ist das. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group