Hallo. am Donnerstag, 2. Oktober 2003 um 10:22 kam u.a. folgendes:
* Am Don, 02 Okt 2003 schrieb Ulrich Walter:
Am Donnerstag, 2. Oktober 2003 09:12 schrieb Christoph Maurer:
if ( a > 0 && b/a < 2 && b%a != 0) ...
^^^ Hier steht dann 0/0, und das ist zumindest in der Mathematik ein unbestimmter Ausdruck...
Ja, aber das sollte doch gar nicht mehr ausgewertet werden, da ich vorher auf a>0 abfrage...
Das ist exakt der Punkt, den ich nicht verstehe!
Wieso sollte der Ausdruck unbedingt von links nach rechts abgearbeitet werden? Es gab in einer Newsgroup in der ich mitlese vor ein paar Monaten mal eine Diskussion zu dem Thema - die Reihenfolge kann völlig verschieden sein und ist glaube ich vom Compiler abhängig. Richtig wäre: if ( a > 0 ) { if ( b/a < 2 && b%a != 0) { ... } } Gruß, Albert