MiniBug?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

Firstdeathmaker

Betreff: MiniBug?

BeitragMo, Okt 19, 2009 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

hab gerade folgendes entdeckt:

Code: [AUSKLAPPEN]
For Local l:Byte = 6 To 0 Step -1
   Print l
next


Na, was meint ihr gibt der code aus?

Liegt daran, dass ich l:byte verwende. Mit l:int geht es wunderbar. Ich denke mal, intern wird das Step -1 dann in ein 1 umgewandelt, was wiederrum direkt terminiert.
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Suco-X

Betreff: .....

BeitragMo, Okt 19, 2009 20:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Bytes sind unsigned
Siehe hier:
Code: [AUSKLAPPEN]

Local tmp:Byte = -1

Print tmp


Ich denke daran liegts dass BMX die Schleife direkt verlässt.
Würd halte folgendes bedeuten

Code: [AUSKLAPPEN]

For Local l:Byte = 6 To 0 Step 255
   Print l
next


Mfg
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

Holzchopf

Meisterpacker

BeitragMo, Okt 19, 2009 20:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Hihi

Ich vermute, BMax nimmt für den Step den selben Datentyp wie für die Zählvariable (damit man auch in Zehntelsschritten von Null auf Eins zählen). Für Byte wird dann aus -1 255, deshalb beendet er sofort.

BlitzMax: [AUSKLAPPEN]
For Local l:Byte = 0 To 255 Step -1
Print l
Next

Wird zur Endlosschleife, weil ja die Abbruchbedingung (>255) nie erfüllt wird. Ist noch interessant, aber bestimmt nicht als Bug zu bezeichnen =)
Obwohl dieses Verhalten verlangt, dass man für einen Byte-Zähler, der negativ zählen soll, einen Workaround schreiben muss =/

Edit: Mist, zu langsam =|
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

DaysShadow

BeitragMo, Okt 19, 2009 20:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit Short gehts demenstprechend ebenfalls nicht...also ist die Zahl für den Step ebenfalls von dem Typ den man für den Iterator angegeben hat, also beides immer gleich Iter:Byte Stepzahl:Byte z.B., oder?

Edit: Ebenfalls zu lahm xD

MfG DaysShadow
Blessed is the mind too small for doubt

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group