Optimierung (&& ||) deaktivieren / umgehen?

Status
Nicht offen für weitere Antworten.

Pfaeff

Aktives Mitglied
Hallo 😉

Ich habe einen Parser für aussagenlogische Formeln geschrieben. Scheint auch auf Anhieb gut zu funktionieren.
Ich lasse mir in der Konsole nun den Rechenweg ausgeben und wundere mich, warum einige Sachen nicht angezeigt werden. Ich vermute mal, dass es an der Code Optimierung liegt.

Beispiel:
Code:
            return parseEx(a, depth) && parseEx(b, depth);
Ist hier die linke Seite false, so wird die rechte erst gar nicht ausgeführt. Da ich aber meine Ausgabe in parseEx() habe, fehlt ein Stück. Ich könnte jetzt natürlich hergehen und mir Funktionen wie && und || selber nachbauen, aber ich brauche das ja nur mal kurz zum Testen. Gibt es keinen Switch, der diese Optimierung ausschaltet?

Vielen Dank,
mfg
 
Ich verstehe nicht was du meinst.
& und | machen jedenfalls fast dasselbe wie && und ||, werten jedoch alle Operanden zuerst aus, statt sofort abzubrechen, wenn klar wird, dass die bedingung erfüllt bzw nicht erfüllt ist.
 
Du sagst zwar es sei nur zum Testen, aber dennoch die Anmerkung.
Es mag kompakter sein, aber ich würde es keinesfalls tun.
Man verwendet fast immer || und &&. Ein anderer Entwickler sieht diesen minimalen Unterschied von einem Zeichen fast nicht (er erwartet automatisch &&), aber der Unterschied kann dramatisch sein.
Zieh die Zeilen auseinander, das ist zumindest mein Rat.
 
Ja, ich habe sie ohnehin unlängst wieder entfernt ich wollte nur eine Kleinigkeit überprüfen.
Bei ^ (ist doch soweit ich weiß xor oder?) gibt es nur eine Variante oder?

Vielen Dank 😉
 
Zuletzt bearbeitet:
klar, aber es wurde ja gesagt, dass es noch zu anderen Problem kommen könnte. Ich dachte da gäbe es demnach noch weitere Unterschiede, oder irre ich? 🙂
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben