Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Addition mit Operator als Variable?
Frage
Hallo Leute,
folgende Variablen sind definiert:
int a = 3;
int b = 2;
int x = '+';
int c;
nun möchte ich aus diesen Variablen c = a + b errechnen, dabei ist x auch variabel, weil es von einer Methode zufällig übergeben wird. Kann man das in Java irgendwie machen? Wie sieht die Syntax dazu aus?
Vielen Dank schon jetzt.
Dramirak
Antwort 1 von Dramirak
Das kann doch nicht so schwer sein. Hat denn niemand eine Lösung?
Antwort 2 von Mairo Jungwirth
Kann das stimmen int x="+"
+ ist doch ein string
aber ich glaube das das nicht gehen kann
du müstest eine function schreiben die zb. nur additionen macht
mfg mario
+ ist doch ein string
aber ich glaube das das nicht gehen kann
du müstest eine function schreiben die zb. nur additionen macht
mfg mario
Antwort 3 von Dramirak
Ja sorry hatte mich verschrieben, sollte natürlich so lauten:
int a = 3;
int b = 2;
char x = '+';
int c;
Ja daran habe ich auch schon gedacht, doch würde ich gerne wissen, ob es da keine andere Möglichkeit gibt.
Danke nochmal,
Dramirak
int a = 3;
int b = 2;
char x = '+';
int c;
Ja daran habe ich auch schon gedacht, doch würde ich gerne wissen, ob es da keine andere Möglichkeit gibt.
Danke nochmal,
Dramirak
Antwort 4 von Markus Brock
Du könntest mit "document.write" ein neues JSkript in das Dokument schreiben und dort den Wert von "c" berechnen lassen.
Wegen einer einzigen Addition o.ä. lohnt sich das aber wohl kaum.
Mit ein paar "if"-Anweisungen sollte das besser gehen.
Wegen einer einzigen Addition o.ä. lohnt sich das aber wohl kaum.
Mit ein paar "if"-Anweisungen sollte das besser gehen.
Antwort 5 von semi
Geht es hier um Java oder Javascript?
In Javascript geht es mit der Funktion eval.
z.B.
In Java gibt es sowas nicht, Du mußt einen kleinen Interpreter schreiben.
In Javascript geht es mit der Funktion eval.
z.B.
var a=3;
var b=2;
var x='+';
var expression1 = "a" + x + "b";
alert(eval(expression1));
var expression2 = "a * b";
alert(eval(expression2));
In Java gibt es sowas nicht, Du mußt einen kleinen Interpreter schreiben.
Antwort 6 von tuntenhase
In VB ginge das doch mit der Select Case Funktion, bezogen auf C. Natürlich nur, wenn die Variable nur bestimmte Werte (z.B. "+", "-" und "*") annehmen könnte.
Gibt es sowas in Java nicht?
Gibt es sowas in Java nicht?
Antwort 7 von semi
Hier ein Beispiel eines Algorithmus zur auswertung arithmetischer Ausdrücke.
Voraussetzung: Korrekt geklammerte Ausdrücke.
z.B.
(((a+b)-(c*(d+a)))*2)
Operanden auf Operandenstack
Operatoren auf Operatorenstack
Öffnende Klammern ignorieren (evtl. zählen und mit schl. vergleichen)
Bei schließenden Klammern:
[list=i]
Obersten Operator holen
Zwei Operanden holen
Oparation durchführen
Ergebnis zurück auf den Operandenstack
Am Ende ist nur ein Wert auf dem Operandenstack, das Ergebnis.
Voraussetzung: Korrekt geklammerte Ausdrücke.
z.B.
(((a+b)-(c*(d+a)))*2)
[list=i]
Am Ende ist nur ein Wert auf dem Operandenstack, das Ergebnis.