Typecasting für Operator in einer IF-Abfrage?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • 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?

    Quellcode

    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:

    Quellcode

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

    Es ist eben nicht gleich:

    Quellcode

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

    Dir wir wohl nichts anderes übrig bleiben als sowas:

    Quellcode

    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 ;)

    Quellcode

    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. }
    Alles anzeigen
    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