Unterschied zwischen: If not a = 2 und If a <> 2

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

lastking

Betreff: Unterschied zwischen: If not a = 2 und If a <> 2

BeitragFr, Feb 26, 2010 18:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Was ist der Unterschied? Ist eines von beiden schneller? Oder ist es egal welches man verwendet?

lg

Goodjee

BeitragFr, Feb 26, 2010 18:23
Antworten mit Zitat
Benutzer-Profile anzeigen
a<>2 ist 3 zeichen kürzer und somit 3 bytes weniger quellcode...


und nun ernsthaft: es ist voll egal
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/
 

mDave

BeitragFr, Feb 26, 2010 18:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt keinen Unterschied.

Und "If Not a=2" ist bei 1000 Schleifendurchgängen um 1Millisekunde langsamer :>

Eingeproggt

BeitragFr, Feb 26, 2010 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde a<>2 bevorzugen - nicht nur weil es wie meine Vorposter schrieben kurzer und vielleicht sogar gaaaanz geringfügig schneller ist - auch weil man mit Not ohne der Verwendung von Klammern sich eigentlich nur selbst Fallstricke baut...
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9
 

lastking

BeitragFr, Feb 26, 2010 18:35
Antworten mit Zitat
Benutzer-Profile anzeigen
okay alles klar Very Happy
war auch nur interessenhalber... Wink

wobei ich a<>2 auch übersichtlicher oder schöner finde, irgendwie...

gruß!

Chester

BeitragFr, Feb 26, 2010 18:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Huch, irgendwie erschrickt mich das ein wenig, dass fast jeder sagt, es gibt keinen Unterschied.
Man bedenke, dass Vergleichsoperatoren wie >,<,=,<> eine höhere Priorität als der NOT Befehl haben.

Somit wird bei "IF not a=2" zuerst geprüft ob a=2 ist, dann wird hiervon das Ergebnis negiert.
Bei "If a<>2" wird hingegen geprüft, ob a ungleich 2 ist.

Somit müssen bei der ersten Variante zwei Operationen ausgeführt werden, bei der 2. Variante nur eine.

Auch wenn das hier jetzt einige als überflüssiges Geschwafel ansehen, möchte ich doch anmerken, dass man sich auf keinen Fall die 1. Variante aneigenen soll, da das Prinzip ein grundverschiedenes ist. Übertragen auf andere Fälle, kann einem das ziemlich in die Irre führen. Wink

hectic

Sieger des IS Talentwettbewerb 2006

BeitragFr, Feb 26, 2010 21:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Stimme Chester zu, wobei allerdings das Not auch gerne für folgendes eingesetzt wird:

Code: [AUSKLAPPEN]
While Not KeyHit(1)
   ;code
Wend

Geht natürlich auch wie folgt:

Code: [AUSKLAPPEN]
While KeyHit(1)<>1
   ;code
Wend

oder

Code: [AUSKLAPPEN]
While KeyHit(1)=0
   ;code
Wend

aber beide Alternativvarianten finde ich nicht so schön gelöst.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D
 

lastking

BeitragSo, Feb 28, 2010 1:08
Antworten mit Zitat
Benutzer-Profile anzeigen
@Chester
Also ich finde es immer gut, wenn man solche Kleinigkeiten erfährt. Dann erhält man viel mehr Grundwissen und kann sich so viel besser ein gesamtes Bild der Vorgänge bzw Arbeitsweise von BB und/oder Computer machen.

Zum anderen sind ja 2 Operationen immerhin schonmal das doppelte von einer! Ich denke mir immer das Kleinvieh ja auch Mist macht und warum nicht auch direkt vernünftig lernen wie man effekiv proggt.
Also gut zu wissen Wink

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group