Bei Java Taschenrechner mehrere Rechnungen?
Ich habe einen Java Taschenrechner, und möchte jetzt aber Rechnungen wie:
Zahl + Zahl + Zahl - Zahl =
machen wie kann ich mehr als 2 Zahlen berechnen? Mein Taschenrechner läuft über eine Konsole und ohne Design.
Danke im vorraus
Der Code:
4 Antworten
Sowas kannst du durch eine Schleife gestalten.
Wobei die Schleifenbedingung sich beispielsweise an die Eingegebene Rechenoperation koppelt, sprich:
Die Schleife soll so lange wahr sein, bis als Zeichen der Rechenoperation ein "=" eingegeben wird.
Innerhalb der Schleife könntest du dann abwechselnd Zahlen und Rechenoperationen abfragen.
Und sobald nun ein = eingegeben wird, verlässt du die Schleife und gibst das Ergebnis aus.
Ich stell es erstmal an Pseudocode dar (Kein vollständiges java-Beispiel, da dies wohl eine Übungsaufgabe ist und ich dir die Freude am Lösen nicht nehmen lassen möchte).
Variable ergebnis = 0; Variable eingabe = null; Variable vorherigeEingabe; (wiederhole) { vorherigeEingabe = eingabe; eingabe = Konsoleneingabe; wenn (eingabe == "=") verlasse schleife; wenn (vorherigeEingabe == Rechenoperation UND eingabe == zahl) { ergebnis = ergebnis plus vorherigeEingabe plus eingabe;* } } Ausgabe Ergebnis;
* = Ist in der Zeile nicht ganz so korrekt. Hier braucht es natürlich ein wenig mehr um hier eine funktionierende Rechenoperation hin zu bekommen.
Dafür brauchst du einen String Evaluator. Den kann man selber schreiben (ohne Kommas recht einfach) oder du nimmst einen fertigen wie EvalEx oder die JavaScript Engine die schon in Java mitgeliefert ist.
Kannst du deinen Code zeigen? Dann können wir dir hier besser helfen.
Am besten lädst du deinen Code auf eine Seite wie z.B. pastebin.com hoch, da GF dies nicht immer korrekt darstellen kann.
Das ist der Code.
Danke schon mal an alle die geholfen haben.
Kommst du mit den gegebenen Antworten klar? Es ist zwar nett dass du deinen Code bereitstellst, aber eigentlich wäre es nicht erforderlich sofern dir gegebene Tipps bereits weiterhelfen würden.
Ich verstehe halbwegs was ich machen soll, aber wie? :/