Typecasting für Operator in einer IF-Abfrage?

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Typecasting für Operator in einer IF-Abfrage?

    Hallo,

    folgende Sache.. ich lese einen Operator ein und wandle ihn für eine bessere Programmierung in einen Integer um.. jedoch muss ich für eine IF-Abfrage wissen, welcher Operator (+ oder -) eingegeben wurde.. nur leider kann ich innerhalb der If-Abfrage keine Typecasting machen, gibts vllt einen besseren Weg?

    Source Code

    1. int operator = (int)'-';
    2. if(var1 ((char)operation) var2==result){} //geht nicht..!!


    Vielen Dank für einen Rat

    lg.july
    Forza Italia!!!!!!
  • Klar geht das nicht. :)
    Das geht ja auch nicht:

    Source Code

    1. if(var1 '-' var2==result){}

    Es ist eben nicht gleich:

    Source Code

    1. if(var1 - var2==result){}

    Dir wir wohl nichts anderes übrig bleiben als sowas:

    Source Code

    1. if((char)operation == '-' && var1 - var2==result){}
    2. if((char)operation == '+' && var1 + var2==result){}
    3. if((char)operation == '*' && var1 * var2==result){}
    4. if((char)operation == '/' && var1 / var2==result){}
    5. ...
  • Moin

    Außerdem sollte das ein perfektes Problem für eine switch Anweisung sein ;)

    Source Code

    1. int operatior = (int) irgendeinchar
    2. switch (operator) {
    3. case 42:
    4. // mache mal (*)
    5. break;
    6. case 43:
    7. // mache plus (+)
    8. break;
    9. case 45:
    10. // mache minus (-)
    11. break;
    12. case 47:
    13. // mache geteilt (/)
    14. break;
    15. default:
    16. // Falsche Eingabe
    17. break;
    18. }
    Display All
    Ubuntu Edgy * Kernel 2.6.17 * Gnome 2.16 * Beryl
    2 x Athlon MP 1900 * MSI K7D Master-L * 1024 MB ECC DDR333
    Hercules 9800XT 256 MB Ram * 1x 250 GB IDE
    Wasserkühlung
  • Grundsatzfrage:
    Ist der Cast nicht riskant:

    Source Code

    1. int operatior = (int) irgendeinchar

    Ich bin mir jetzt nicht sicher, ob Java immer die selbe Codetable verwendet. Wenn dem nicht so ist, dann sollte man von solchen Casts eher abstand nehmen.
    Selbst wenn diese grundlegenden Symbole immer die selbe Nummer haben wäre es irgendwie unsauber.