hab den Code jetzt verbessert!Kaeru Gaman hat geschrieben:...hast du das mal getestet?
For-Schleifen-Abbruch funzt nicht mit "<" und &
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
gehen verschachtelte macro-definitionen?
(hab didis mal umgestrickt, keine ahnung, ob das funktionieren würde...)
[edit]
ne, funktionieren wahrscheinlich nicht, weil macros zur compilezeit ersetzt werden...
oder gehts doch? *grübel* ...is eigentlich auch egal...
PS:
@Leonhart
das i hat da nix zu suchen, du musst dann schon "Var" schreiben..
und obs funktioniert, kann man so blind auch nich sagen...
im grunde ist das doch alles flickwerk.
die schleifentypen die vorhanden sind, reichen völlig,
und wer lieber JAVA konstrukte möchte, soll halt in JAVA programmieren...
(hab didis mal umgestrickt, keine ahnung, ob das funktionieren würde...)
Code: Alles auswählen
Macro ForEx(Expression1, Expression2,Expression3)
Macro NextEx()
Expression3
Wend
EndMacro
Expression1
While (Expression2) Or #False
EndMacro
i.l
ForEx(i=0, i<10,i + 1)
Debug i
NextEx()
ne, funktionieren wahrscheinlich nicht, weil macros zur compilezeit ersetzt werden...
oder gehts doch? *grübel* ...is eigentlich auch egal...
PS:
@Leonhart
das i hat da nix zu suchen, du musst dann schon "Var" schreiben..
und obs funktioniert, kann man so blind auch nich sagen...
im grunde ist das doch alles flickwerk.
die schleifentypen die vorhanden sind, reichen völlig,
und wer lieber JAVA konstrukte möchte, soll halt in JAVA programmieren...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Erst einmal danke für die vielen Antworten. Ich hatte eigentlich nicht gedacht, dass innerhalb so kurzer Zeit so viele Posts zusammenkommen werden.
Zuerst einmal:
Ich weiß durchaus, dass JAVA kein BASIC ist. Andererseits ist es ja gerade das besondere an PureBasic, dass es über "einfaches" Basic hinausgeht.
Mir ging es nur um die grundsätzliche For-Schleifenstruktur. Mich hat es einfach nur gewundert, dass es hierbei zu Differenzen kam, wo ich sie eigentlich nicht erwartet hätte. Das ist alles.
Und einmal ganz nebenbei bemerkt: Freiwillig nutze ich JAVA nicht oder meint ihr, ich würde sonst imperativ lösbare Java-Aufgaben mit PB angehen
Zuerst einmal:
Ich weiß durchaus, dass JAVA kein BASIC ist. Andererseits ist es ja gerade das besondere an PureBasic, dass es über "einfaches" Basic hinausgeht.
Mir ging es nur um die grundsätzliche For-Schleifenstruktur. Mich hat es einfach nur gewundert, dass es hierbei zu Differenzen kam, wo ich sie eigentlich nicht erwartet hätte. Das ist alles.
Und einmal ganz nebenbei bemerkt: Freiwillig nutze ich JAVA nicht oder meint ihr, ich würde sonst imperativ lösbare Java-Aufgaben mit PB angehen

Es gibt 10 Arten von Menschen: Jene, die das Binärsystem verstehen und jene, bei denen das nicht der Fall ist.
PB_4.20
WinXP_Pro_x32_SP3
PB_4.20
WinXP_Pro_x32_SP3
dann kann man es ja gleich so machen:
oder notfalls noch mit den For/Next schlüsselpförtern:
da is dann auch sichergestellt, dass man nichts mehr erkennt. 
Code: Alles auswählen
i=2:While i<100
Debug i
i*2:Wend
Code: Alles auswählen
FOR_.l :: i=0 :: While i<6
Debug i
NEXT_.l :: i+1 :: Wend
Code: Alles auswählen
FOR_.l :: i=2:n=0 :: While (i<1025 And n<=4)
Debug Str(i)+" "+Str(n)
NEXT_.l :: i*2:n+1 :: Wend

Nur zur Information:
Die FOR-Schleife ist gegenüber REPEAT und WHILE-Schleifen die schnellste! Bei mir im Test folgte dann auf Platz 2 REPEAT dicht gefolgt von WHILE.
Ich würde also FOR-Schleifen nehmen, wo es möglich ist und auf den Ausdruck FOR n=1 to i<n beispielsweise verzichten.
Die FOR-Schleife ist gegenüber REPEAT und WHILE-Schleifen die schnellste! Bei mir im Test folgte dann auf Platz 2 REPEAT dicht gefolgt von WHILE.
Ich würde also FOR-Schleifen nehmen, wo es möglich ist und auf den Ausdruck FOR n=1 to i<n beispielsweise verzichten.
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
- Froggerprogger
- Badmin
- Beiträge: 855
- Registriert: 08.09.2004 20:02
Achja, von mir auch noch eine Portion Senf: PB's
ist dasselbe wie
in einigen anderen Programmiersprachen.
Und bei beiden hat i nach regulärer Beendigung der Schleife den Wert n+1
Code: Alles auswählen
For i=0 To n
Code: Alles auswählen
for (i=0; i<=n; i++)
Und bei beiden hat i nach regulärer Beendigung der Schleife den Wert n+1
!UD2
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Da stimm so, ist aber in der Praxis einfach nur QuatschAND51 hat geschrieben:Nur zur Information:
Die FOR-Schleife ist gegenüber REPEAT und WHILE-Schleifen die schnellste! Bei mir im Test folgte dann auf Platz 2 REPEAT dicht gefolgt von WHILE.
Ich würde also FOR-Schleifen nehmen, wo es möglich ist und auf den Ausdruck FOR n=1 to i<n beispielsweise verzichten.

Dauern tut der Schleifeninhalt, nicht die Schleife selber. For Next Schleifen
sind nur Sinnvoll, wenn die Anzahl der Durchläufe sich niemals ändert und
der Zähler gebraucht wird.
Wenn man den Inhalt der Schleife optimiert, wird man die Daten direkt im
Speicher manipulieren, weils am schnellsten ist. Dabei werden sogar einige
Schleifendurchläufe überflüssig. Somit ist meist die While-Wend Schleife die
schnellste.
Diese komischen falschen Pauschalaussagen ärgern mich langsam.
PS: Speedoptimierter Code ist fast immer länger als normaller Code.
Weniger Codezeilen <> Speed
yust my 2 cent
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
