Ich programmiere seit ein paar Tagen mit Java und wollte mal ein Taschenrechner programmieren. Der hat auch super geklappt aber jetzt wollte ich wissen wie ich es machen kann das der Taschenrechner auch Minus rechnet könnt ihr helfen?
Hier der Code:
public static void main(String[] args) {
double zahl1, zahl2, ergebnis;
Scanner scannerVariable = new Scanner(System.in);
System.out.println("Erste Zahl bitte.");
zahl1=scannerVariable.nextDouble();
System.out.println("Zweite Zahl bitte.");
zahl2=scannerVariable.nextDouble();
ergebnis=zahl1+zahl2;
System.out.println("Das Ergebnis ist: " + ergebnis);
}
Um es einfach zu halten könntest du vorab eine Abfrage machen welche Rechenoperation der Benutzer haben will. So kannst du dann einfach bei der Berechnung zwischen -, +, *, / , .. differenzieren.
Du fragst am Anfang den User, welche rechen Operation er haben möchte.
Und wertest das dann aus. Mit Scanner.nextLine(); bekommst du die Eingaben des Users als String
Das kannst du dir quasi aussuchen. Du kannst es direkt an den Anfang schreiben oder nachdem du die beiden Zahlen eingelesen hast. Ich würde es an den Anfang schreiben und davor ein System.out.println(), dass sowas wie "Welche Rechenoperation ist gewünscht?" oder einfach "+-*/?" auf jeden Fall sowas wie du schon mit gib eine Zahl ein gemacht hast.
Genauso wie du es auch schon selbst gemacht hast, nur eben anstatt dass du mit next Double einen Double speicherst in der Variable, kannst du mit nextLine() einen String speichern. Die Variable hat dann die Eingabe gespeichert und du kannst sie weiterverwenden.
Bei einer If abfrage kannst du dann eine Fallunterscheidung machen.
Falls Bedigung wahr
Tue ...
Ansonsten
Tue ....
das heißt du brauchst eine Bedingung, die erfüllt oder nicht erfüllt wird z.B. Eben ein Vergleich.
Du hast ja schon oben den Hinweis bekommen, dass du Dir dazu die Methode equals() der Klasse String anschauen solltest.
Jetzt funktioniert es aber ich krieg wenn ich eine Rechenart auswähle diese Fehlermeldung:
Exception in thread "main" java.lang.UnsupportedOperationException: Not supported yet.
at taschenrechner.v.pkg0.pkg1.scannerVariable.nextDouble(scannerVariable.java:15)
at taschenrechner.v.pkg0.pkg1.TaschenrechnerV01.main(TaschenrechnerV01.java:33)
C:\Users\Yanis\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 7 seconds)
publicstaticvoidmain(String[] args){Scanner scan =newScanner(System.in);double zahl1, zahl2, ergebnis;System.out.println("+-*/?");String s = scan.nextLine();System.out.println(s);System.out.println("Erste Zahl bitte.");
zahl1 = scan.nextDouble();System.out.println("Zweite Zahl bitte.");
zahl2 = scan.nextDouble();
ergebnis = zahl1 + zahl2;System.out.println("Das Ergebnis ist: "+ ergebnis);}
Es MUSS (wie die Fehlermeldung schon sagt) an deinem Object 'scannerVariable' liegen. Auch mit Zwei Scannern funktioniert es bei mir. Ist 'scannerVariable' eine Instanz von einer Klasse die du geschrieben hast?
Schon klar, schau dir mal den Programmablauf an:
du addierst die Zahlen, gibst das Ergebnis aus... und dann machst du die Switch-Anweisung, die entscheidet, was berechnet werden soll. Um es einfach zu machen: Schmeiß die 'Ergebnis=zahl1+zahl2' Zeile raus und setz genau da deine Switch-Konstruktion rein