Seite 1 von 4
Bug oder nur eine Frage des verständnisses
Verfasst: 09.12.2004 23:09
von Torakas
Hi Leute,
ich hab heute mal eine Abfrage aufgebaut mit And und Or nur verstehe ich nicht warum das Purebasic so nimmt. Mal ein beispiel:
Normalerweise muesste er in die Abfrage springen, tut er aber nicht. Erst wenn ich
schreibe dann geht es.. Das ist doch nicht richtig... Naja, wenn man es weiss dann geht es, aber normalerweise sollte der Compiler das auch selber richtig erkennen... immerhin ist es ja eindeutig...
Was sagt ihr...
Gruß,
Torakas
Verfasst: 09.12.2004 23:14
von ts-soft
Verfasst: 09.12.2004 23:19
von Franky
Eindeutig ist es nicht
Du könntest ja auch meinen:
oder...
oder...
oder...
oder...
oder...oder... oder....
Wobei ich jetzt mal davon ausgehe, dass du 1 und 0 eingesetzt hast statt irgendwelcher variablen, die diese werte haben können

Sonst wär´s wohl relativ nutzlos, so eine abfrage zu machen, du kennst die lösung ja.
Verfasst: 10.12.2004 01:17
von Laurin
Das Problem was du ansprichst, sind die Vorrangregeln.
Denk mal an die Punkt-vor-Strich-Rechnung. So ähnlich ist es hier. Nur heißt es hier OR-vor-AND-Rechnung. Eigendlich müssten AND und Or gleichwertig sein, also es müsste eine Fehlermeldung wegen Uneindeutigkeit rausspringen.
Greetz Laurin
Verfasst: 10.12.2004 10:00
von Exabot
@Laurin
zu einer Zeit als man Eros noch für den Gott der Liebe hielt
und nicht für den Chef einer Supermarktkette,
als Pisa noch eine Stadt in Italien und nicht der Name einer Studie war
habe ich gelernt, dass bei gleichwertigen Rechenoperatoren strikt von
links nach rechts ausgewertet wird.
Gruß
Spider
Verfasst: 10.12.2004 10:40
von Torakas
Danke @ Spider
wenn man es von links nach rechts lesen würde dann kommt erstmal das And und somit ist die naechste Variable damit gemeint das sie zuammenhaengen... Naja, ich werde mir einfach die Klammern hier angewöhnen wie in C, dann da sind sie immer...
Gruß,
Torakas
Verfasst: 10.12.2004 12:26
von Exabot
Hallo Torakas,
mir ging es eigentlich nur um die Aussage:
Eigendlich müssten AND und Or gleichwertig sein, also es müsste eine Fehlermeldung wegen Uneindeutigkeit rausspringen.
Wenn meine Deine Abfrage durchgeht (von links nach rechts),
komme ich zu folgendem Ergebnis:
0 and 0 ( logisch falsch weil: falsch and falsch = falsch)
diese ergebnis geort mit 1 = 0 or 1 (logisch wahr, weil: falsch or wahr = wahr.) PB liefert hier aber falsch!
Ergebnis:
Denkfehler meinerseits, man möge mich korrigieren!
Ansonsten BUG in PB
mfg Spider
Verfasst: 10.12.2004 12:38
von freedimension
Bin zum selben Ergebnis gekommen und plädiere für Bug.
Verfasst: 10.12.2004 13:33
von Kaeru Gaman
wenn ich
0 and (0 or 1) and 1
klammere, bekomme ich auch keine ausgabe,
was auch richtig so ist:
0 or 1 = 1
0 and 1 = 0
0 and 1 = 0
wenn also laurin recht hat mit OR vor AND, dann ist es kein bug.
Verfasst: 10.12.2004 14:13
von Andre
Bug hin oder her - ich habe es mal an Fred zur Überprüfung gemeldet.
