Seite 4 von 4
Verfasst: 11.12.2004 00:07
von Kaeru Gaman
MARTIN hat geschrieben:... warum nicht einfach rang der operatoren so wie in C/C++ setzten ?
Also "AND" vor "OR".
weil ich darin einfach keinen sinn sehe, operatoren,
die der gleichen klasse angehören,
unterschiedlich zu werten.
da könnte man auch drüber diskutieren,
ob PLUS vorrang vor MINUS haben soll,
oder MAL vor GETEILT.
Verfasst: 11.12.2004 01:20
von MARTIN
@Spider
wenn ich Dein C-Beispiel nachvollziehe kommt And (&&) nicht
vor Or (||) sondern es wird der gesamte Ausdruck korrekt von
links nach rechts ausgewertet, ohne beim 1. False (0 && 0) abzubrechen.
Doch da gilt "AND" vor "OR" und "NOT" vor allem andren

:
Code: Alles auswählen
#include <iostream>
using namespace std;
int main()
{
cout << "1 && 1 || 0 && 0:";
//Hier alles ohne klammer, es kommt "Wahr raus
if(1 && 1 || 0 && 0 )
{
cout << "Wahr" << endl;
}
else
{
cout << "Falsch" << endl;
}
cout << "((1 && 1) || 0) && 0:";
//Hier stelle ich mit hilfe von Klamarn sicher,
//das die Operationen Reie nach ausgewertet werden
//das Ergibnis:"Falsch"
if(((1 && 1) || 0) && 0 )
{
cout << "Wahr" << endl;
}
else
{
cout << "Falsch" << endl;
}
return 0;
}
Das Problem mit den Operatoren in PB ist ja sowieso nur eine kleine Unzulänglichkeit, ich hätte sie ohne diesen Thread wahrscheinlich nicht entdeckt.
Verfasst: 13.12.2004 15:46
von Exabot
Entschuldigung, dass ich diesen thread nochmals hoch hole,
aber:
@MARTIN:
Du hast natürlich recht!
&& (and) kommt in C vor || (or)
@alle
In PB müssen unbedingt Klammern verwendet werden,
da sich PB mit and|or Bedingungen sehr schwer tut!
(Bin geneigt, das als BUG zu bezeichnen)
@André
Vielleicht sagt ja Fred doch noch was konstruktives dazu.
Gruss
Spider