Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
cout << Mini JLI'ler
Anmeldedatum: 13.02.2004 Beiträge: 48 Wohnort: Wien/Österreich Medaillen: Keine
|
Verfasst am: 23.04.2004, 21:00 Titel: Was soll das sein? |
|
|
Wir haben von unserem Professor nen Sourcecode bekommen, den ein Schüler zamgeschrieben hat. Der Code ist natürlich ziemlich fehlerhaft: z.B. "case" und ":" fehlen und außerdem befindet sich nach der einen return anweisung eine nicht erreichbare Anweisung.
Code: | public class Rechner
{
private static double rechnen(double op1, double op2, char op)
{
switch(op)
{
'+' return op1+op2;
'-' return op1-op2;
'*' return op1*op2;
'/' return (op1 < Math.abs(op2) < 1E-20);Double.MAX_Value:op1/op2;
}
}
}
|
Weiß einer von euch, was die Anweisung "(op1 < Math.abs(op2) < 1E-20);" bewirken soll?!
Wäre für Antworten sehr Dankbar. |
|
Nach oben |
|
|
xardias JLI Master
Alter: 38 Anmeldedatum: 28.12.2003 Beiträge: 804 Wohnort: Palo Alto, CA Medaillen: Keine
|
Verfasst am: 23.04.2004, 21:22 Titel: |
|
|
ich schätz mal, dass das heißen sollte.
Code: |
'/' return (op1 < Math.abs(op2) < 1E-20) ? Double.MAX_Value : op1/op2;
|
würde auch den ':' dahinter erklären
PS: über den sinn dieser bedingung denke ich jetzt nicht nach bin totmüde. |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 24.04.2004, 12:24 Titel: |
|
|
Das ist eben eine verkürzte if-Anweisung(zumindest sollte sie das sein).
In dem Code zum Berechnen der shift-Variablen für Farbumrechnungen kommt auch im Buch eine solche Anweisung vor.
Hier muss eben Das Ergebnis von Math.abs(op2) zwischen op1 und 1E-20 liegen. Dann wird Double.MAX_Value zurückgeben; sonst op1/op2. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
xardias JLI Master
Alter: 38 Anmeldedatum: 28.12.2003 Beiträge: 804 Wohnort: Palo Alto, CA Medaillen: Keine
|
Verfasst am: 24.04.2004, 14:03 Titel: |
|
|
Für sowas ist der ? operator recht praktisch
btw: funktioniert
Code: | if (op1 < Math.abs(op2) < 1E-20) |
wirklich ?
Also wenn ich mir das anschaue, dann würde doch eigentlich:
Math.abs(op2) < 1E-20
ein bool zurück geben. Und dieser dann mit op1 verglichen. und nen bool mit ner double vergleichen ist doch irgendwie dumm, oder ?
Also ich würde das so schreiben:
Code: | if( op1 < Math.abs(op2) && Math.abs(op2) < 1E-20 ) |
|
|
Nach oben |
|
|
cout << Mini JLI'ler
Anmeldedatum: 13.02.2004 Beiträge: 48 Wohnort: Wien/Österreich Medaillen: Keine
|
Verfasst am: 24.04.2004, 15:22 Titel: |
|
|
Ich denke, da hat sich mein Kollege vertippt...Hehe...am Mo is er dran |
|
Nach oben |
|
|
|