Alles anzeigen[..]
Entscheidend ist hier wohl zur Zeitersparnis hauptsächlich die weitestgehende Vermeidung von IF...THEN.
[..]
Ich finde es jedenfalls erstaunlich, was für Unterschiede kleine Feinheiten machen.
Vielleicht sollten wir kleine Programmroutinen wie z.B. einen STRING in Grossbuchstaben wandeln als Wettbewerb machen.
In der Tat, alles was nach mehr aussieht dauert bei einem BASIC-Interpreter in der Regel auch länger (da gibt es freilich auch Ausnahmen). Schon alleine vom "Parsing" im Zuge der Abarbeitung.
Bei den IF-Varianten könnte man etwas effizienter vorgehen, indem man die Füllleerzeichen weg lässt. Konstanten, speziell die 3-stelligen brauchen verhältnismäßig lange, um in Floats umgerechnet zu werden, die dann für den Vergleich benötigt werden. Könnte man in Variablen ablegen (dann hängt es nur noch von der Variablensuche ab ). Kann auch 15 % für eine Abfrage wie unten bringen (wenn die Variablen als eine der ersten definiert sind).
Sachen wie
8310 IF A1>64 AND A1<91 THEN A2$=A2$+CHR$(A1+32):NEXT:RETURN
sollten schneller sein, wenn man sie als
310 IF A1>64 THEN IF A1<91 THEN A2$=A2$+CHR$(A1+32):NEXT:RETURN
schreibt. Sonst wird der Ausdruck immer vollständig ausgewertet. Das macht die Abfrage rund 10 bis 50 % schneller.