R
Hallo!
mal jetzt abgesehen, dass ich auch der Meinung bin, dass hier switch besser wäre, weil leichter lesbar und einfacher zu debuggen....
Schau mal:
(x==0) gibt entweder 1 oder 0 zurück, oder?
(x==1) das auch, oder? 1 oder 0 !
(x==2) richtig, das auch! entweder 1 oder 0!
demnach ist in dieser Anweisung:
e = (x==0)*multiplikation(h,g) + (x==1)*division(h,g) + (x==2)*addition(h,g);
nur einmal 1 * RECHENART... enthalten, oder?
also wenn X gleich 1 dann sieht das ganze eigentlich so aus:
e = 0*multiplikation(h,g) + 1*division(h,g) + 0*addition(h,g);
demnach ergibt zwangsläufig nur 1+division(h,g) einen Wert ungleich 0 zurück, oder? und 500 + 0 + 0 bleibt bei 500, richtig? Damit hast du das Ergebnis!
Im übrigen fällt mir gerade auf, dass diese Anweisung von Windarf FALSCH ist! (Logikfehler!)
Nämlich: Bei jeder Rechenart kann "der 2. Parameter" eine 0 sein. Dividieren durch 0 funktioniert aber nicht! Das gibt ne schöne Fehlermeldung, auch wenn du gerade nicht dividierst, sondern z.B. mit einer 0 addierst!
- und hinterher weiß keiner woher die kommt!
Darum würde ich solche Spielchen, wie die von Windalf, eher lassen! Welchen Vorteil hat die eigentlich?? "Sparen" am Code, damit der nicht zu groß wird und nicht so große Festplatten nötig werden??
tschüss
Robert