Rechner: Wert zwischenspeichern und bei Bedarf mit Ihm weiterrechnen?

Alex_99

Mitglied
Hallo,

Ich arbeite gerade an meinem ersten komplexeren Java Projekt, und es geht darum einen Rechner zu erstellen, der auch Werte zwischenspeichern kann und bei Bedarf den zwischengespeicherten Wert wieder in den Hauptspeicher schreiben kann um mit Ihm weiterrechnen zu können.
Das Programm ist kommandozeilenbasiert und funktioniert mit Variablen.

Java:
case "d":
            Main.speichern = 0;
            System.out.println("Speicher geloescht. Es befindet sich: " + Main.speichern + " im Speicher\n");
            Rechner.nachergebnis();
            break;
        case "s":
             Main.speichern = Main.speicher_alt;
            System.out.println("Wert " + Main.speichern + "Wurde in den Zwischenspeicher geladen\n");
            Rechner.nachergebnis();
        case "l":
            Main.speicher_alt = Main.speichern;
            System.out.println("Wert " + Main.speicher_alt + "Wurde aus Zwischenspeicher nach Speicher geladen\n");
            System.out.println("Es kann mit dem alten Wert weitergerechnet werden.");
            Rechner.nachergebnis();
        }

Wenn nun also "s" auf der Tastatur gedrückt wird soll der Wert aus double "Speichern" in den double "Speicher_alt" gespeichert werden.
Wenn man jetzt eine neue Berechnung durchführt dessen Ergebnis in "Speichern" gesichert wird soll man die Möglichkeit haben den alten Wert der in Variable Speicher_alt liegt wieder mit Tastendruck "l" in die Variable "Speicher" zu laden und damit zu rechnen.

Problem: Wenn "s" gedrückt wird dann wird "speicher" 0.0 und verliert den alten Wert, was ja nicht gewünscht ist.

Mit Tastendruck "d" wird der Speicher mit einer 0 überschrieben was wunderbar funktioniert.

Was kann ich tun um die Funktion zu implementieren?
 

KonradN

Super-Moderator
Mitarbeiter
Da fehlt ein break; beim „s“ Fall. Aber die Fehlerbeschreibung ist so vage und der Codeausschnitt zu klein um wirkliche Aussagen zu treffen.
 

Alex_99

Mitglied
Hier ein Beispiel:

Wenn zahl1 ist ein double und zahl 2 ist ein double beide in der Klasse deklariert mit:
Java:
public static double zahl1;
Code:
public static double zahl2;

Wenn jetzt addiert wird funktioniert das so:
Code:
 public static void rechner() {
        System.out.println("Bitte eine Zahl eingeben");
        System.out.print("Eingabe: ");
        zahl1 = eingabe.nextDouble();

        System.out.println("\nBitte Operator eingeben");
        System.out.println("Alternativ p fuer Prozentrechner");
        System.out.print("Eingabe: ");
        operator = eingabe.next();
        if (Objects.equals(operator, "p")){
            Rechner.bruchwahl();
        }

        System.out.println("\nBitte zweite Zahl eingeben");
        System.out.print("Eingabe: ");
        zahl2 = eingabe.nextDouble();

        switch (operator) {
            case "+":
                System.out.println("\nDas Ergebnis ist: " + (ergebnis = zahl1 + zahl2));
                Main.speichern = ergebnis;
                break;

Dann geht er in die andere Funktion und tut folgendes:
Code:
public static void nachergebnis() {
        Scanner eingabe = new Scanner(System.in);
        System.out.println("-------------------------------------------");
        System.out.println("Bitte Aktion waehlen:");
        System.out.println("-------------------------------------------");
        System.out.println("1 - weiterrechnen mit Ergebnis");
        System.out.println("2 - Neue Rechnung");
        System.out.println("3 - Rechner Menue");
        System.out.println("4 - Hauptmenue");
        System.out.println("d - Speicher loeschen");
        System.out.println("a - Speicher ausgeben");
        System.out.println("s - Wert in Zwischenspeicher laden");
        System.out.println("l - alten Wert aus Zwischenspeicher laden");
        String wahl = eingabe.next();

    switch (wahl){
        case "1":Rechner.weiterrechnen();
            break;
        case "2":
            Rechner.rechner();
            break;
        case "3":
            Rechner.startrechner();
            break;
        case "4":
            Main.main(null);
            break;
        case "a":
            System.out.println("Es befindet sich: " + Main.speichern + " im Speicher");
            Rechner.nachergebnis();
            break;
        case "d":
            Main.speichern = 0;
            System.out.println("Speicher geloescht. Es befindet sich: " + Main.speichern + " im Speicher\n");
            Rechner.nachergebnis();
            break;
        case "s":
             Main.speichern = Main.speicher_alt;
            System.out.println("Wert " + Main.speichern + "Wurde in den Zwischenspeicher geladen\n");
            Rechner.nachergebnis();
            break;
        case "l":
            Main.speicher_alt = Main.speichern;
            System.out.println("Wert " + Main.speicher_alt + "Wurde aus Zwischenspeicher nach Speicher geladen\n");
            System.out.println("Es kann mit dem alten Wert weitergerechnet werden.");
            Rechner.nachergebnis();
            break;
        }

Der Part mit dem speichern des Werts in der Variable Main.speicher_alt funktioniert leider nicht.
Die Variablen Speichern und speicher_alt wurden folgendermaßen implementiert:
Java:
public static double speichern;
    public static double speicher_alt;
 
Zuletzt bearbeitet:

mihe7

Top Contributor
Der Part mit dem speichern des Werts in der Variable Main.speicher_alt funktioniert leider nicht.
Wie ich oben bereits angemerkt habe, legst Du nichts in speicher_alt ab sondern in speichern. Die Anweisung
Java:
Main.speichern = Main.speicher_alt;
kopiert den Wert, der sich aktuell in speicher_alt befindet, nach speichern. Das wäre, wenn ich mir den anderen Code ansehe, das Laden und nicht das Speichern. Das Speichern würde umgekehrt aussehen
Java:
Main.speicher_alt = Main.speichern;
 

mihe7

Top Contributor
So etwas kann man zu einem gewissen Grad auch durch eine bessere Benennung der Variablen vermeiden: statt speichern (ein Verb) könnte man speicher und statt speicher_alt einfach zwischenspeicher verwenden. Dann würde dort stehen
Java:
Main.zwischenspeicher = Main.speicher;
und man muss nicht lange überlegen, wofür speicher_alt/speicher stehen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
U URI Rechner Allgemeine Java-Themen 4
U URI Rechner Allgemeine Java-Themen 2
U URI Rechner (Java Script) Allgemeine Java-Themen 7
H Java Rechner Programmierung der Mathematik Allgemeine Java-Themen 33
M Rechner dez in Hex umwandeln Allgemeine Java-Themen 5
A Rechner in Android Studio Allgemeine Java-Themen 2
H Projekt Quadraturverfahren Rechner Allgemeine Java-Themen 2
N Eclipse Dynamisches-Web-Project auf anderen Rechner transportieren Allgemeine Java-Themen 5
KilledByCheese Dezimal nach Hexadezimal rechner wirft seltsame exception Allgemeine Java-Themen 4
P Mehrere Java Versionen auf dem Rechner Allgemeine Java-Themen 3
S BMI Rechner mit eclipse Visual Editor (Seperates Fenster) Allgemeine Java-Themen 7
Thallius Serialisiertes File kann auf anderem Rechner nicht geladen werden Allgemeine Java-Themen 12
D IP-Adresse der Rechner im Netzwerk auflisten Allgemeine Java-Themen 2
M Fitness-Rechner: NullPointerException Allgemeine Java-Themen 7
K Programm startet nur auf eigenem Rechner??? Allgemeine Java-Themen 6
M Linux Rechner per ssh runterfahren mit Java Allgemeine Java-Themen 8
M AWT JAVA Rechner Allgemeine Java-Themen 20
E eindeutige Id's für Rechner Allgemeine Java-Themen 7
Landei Kleiner UPN-Rechner für BigIntegers Allgemeine Java-Themen 5
S Dem Rechner klarmachen das Java 1.5 installiert ist Allgemeine Java-Themen 13
F Zugriff auf lokalen Rechner wer weiss Rat ? Allgemeine Java-Themen 16
M ireport (Jasper Report) geht nur auf meinen Rechner Allgemeine Java-Themen 3
S Rechner formatiert - nichts geht mehr. Allgemeine Java-Themen 2
S jar-datei auf anderem Rechner nicht ausführbar. Allgemeine Java-Themen 40
W Datei und druckerfreigaben von lokalem Rechner auslesen. Allgemeine Java-Themen 2
N entfernten rechner runterfahren => putty-ersatz Allgemeine Java-Themen 8
B Mehrere Versionen auf einem Rechner Allgemeine Java-Themen 2
A Java-Applikation auf einem anderen Rechner starten Allgemeine Java-Themen 17
L kleine frage zum rechner Allgemeine Java-Themen 7
X Java Wirrwarr auf dem Rechner Allgemeine Java-Themen 5
B Rechner stürzt ab wenn Java-Anwendungen geöffnet werden! Allgemeine Java-Themen 2
thE_29 Linux-Rechner herunterfahren Allgemeine Java-Themen 3
J Wie kann man herausfinden, wo der Wert herkommt ? Allgemeine Java-Themen 13
JAnruVA Datentypen Berechneten String-Wert in Double umwandeln um weiter zu rechnen Allgemeine Java-Themen 7
T Verschachtelte For-Schleife gibt falschen Wert zurück, Abbruchbedingung evtl. falsch? Allgemeine Java-Themen 9
L 2 Dimensionale ListArray Abfrage nach einem Wert suchen Allgemeine Java-Themen 5
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
I Wie kann ich den Wert aus einer If abfrage ausgeben Allgemeine Java-Themen 23
S Wert zuweisung Allgemeine Java-Themen 1
J Wo kommt der Wert der Variable her ? Allgemeine Java-Themen 6
Tiago1234 CellReference cr = new CellReference("") gibt den falschen Wert zurück Allgemeine Java-Themen 49
N Value Wert aus HTML-Button mittels thymeleaf spring an java übergeben Allgemeine Java-Themen 2
L String zu repräsentativen Wert Allgemeine Java-Themen 0
S Drools: Zählen wie oft ein Wert vorkommt Allgemeine Java-Themen 1
M Gibt es eine API die den aktuellen Wert eines Indikators beim Trading zurückgibt? Allgemeine Java-Themen 7
T Wert an laufenden Java-Prozess übergeben Allgemeine Java-Themen 10
A Variablen Funktion übergibt den Wert nicht Allgemeine Java-Themen 13
P JSpinner gibt leeren Wert zurück Allgemeine Java-Themen 5
KeexZDeveoper Nächstgelegenden Wert ermitteln Allgemeine Java-Themen 5
C Variablen Variablen mit unendlichem Wert Allgemeine Java-Themen 22
G Iteratoren - Wie kann man mithilfe von Iteratoren nur jeden zweiten Wert eines TreeSets ausgeben? Allgemeine Java-Themen 4
A Mit dem letzten bis zum ersten Wert aus Array rechnen Allgemeine Java-Themen 15
T Array - Wert am nächsten zur vollen Sekunde Allgemeine Java-Themen 20
F Wert in Variable schreiben, wenn diese gerade genutzt wird Allgemeine Java-Themen 10
G Methoden BMI -Wert Aufgabe(Methoden) Allgemeine Java-Themen 4
F Wert ändert sich nicht Allgemeine Java-Themen 12
E JavaFX String-Wert geht "verloren" - ratlos Allgemeine Java-Themen 2
A In Excel-Datei schreiben, Formeln der Mappe anwenden, Wert lesen Allgemeine Java-Themen 3
R Int Wert im Dialogfeld ändern Allgemeine Java-Themen 4
B [Android] EditText-Object ist null - Nimmt nicht den Wert des enthaltenen Textfeldes ein Allgemeine Java-Themen 2
O log4j, Problem bei Ausgabe null-Wert Allgemeine Java-Themen 0
H Bestimmten Wert aus String parsen Allgemeine Java-Themen 7
M HashMaps: Wert erweitern Allgemeine Java-Themen 3
C Object.equals() liefert falschen Wert? Allgemeine Java-Themen 14
M Parallele Programmierung: volatile Variable nimmt ungewöhnlichen Wert an Allgemeine Java-Themen 3
T Datentypen ArrayUtils.indexOf( ... ) liefert -1 obwohl Wert scheinbar enthalten ist Allgemeine Java-Themen 15
H Speziellen Wert aus String filtern Allgemeine Java-Themen 4
M JExcel Wert aus Zelle übergeben/ausgeben Allgemeine Java-Themen 2
iB0T Variable Wert ausrauchen Allgemeine Java-Themen 3
iB0T "goto" Befehl aus Batch in Java und Variablen wert immer wieder neu setzen Allgemeine Java-Themen 4
G Z Wert - 3 Dimensionaler Punkt Allgemeine Java-Themen 13
S JPA und Entity-Klassen: Wert ungültig Allgemeine Java-Themen 6
C .Ini-Datei Wert Änderungen werden nicht angenommen Allgemeine Java-Themen 3
J String mit "," in Double Wert konvertieren Allgemeine Java-Themen 7
A nur einen Wert aus einer .conf lesen und erneuern Allgemeine Java-Themen 3
I getResponseCode(); returnt einen falschen Wert? Allgemeine Java-Themen 7
N Applet Apache Poi Wert einer Formel ausgeben Allgemeine Java-Themen 5
G Input/Output Manuelle Änderung von Wert in Swing Komponente bemerken! Allgemeine Java-Themen 2
S Newton-Verfahren liefert nur 1 Wert Allgemeine Java-Themen 3
E Wert von enum zur Laufzeit festlegen. Allgemeine Java-Themen 5
E Wert in andere Klasse übernehmen Allgemeine Java-Themen 4
X this.val$WERT Was ist den das? Allgemeine Java-Themen 2
K Scanner - große Textfile, nur 0 ab betim. Wert Allgemeine Java-Themen 4
S Daten in Array als INT-Wert einlesen - jetzt als csv Datei Allgemeine Java-Themen 5
T OLE-Automation mit Excel (Wert übergabe) Allgemeine Java-Themen 1
Benji0815 Wert in GUI aktualisieren, Beobachter Allgemeine Java-Themen 9
O Hash Wert von Passwörter erstellen (SHA) Allgemeine Java-Themen 9
G Double Wert über OutputStream verschicken Allgemeine Java-Themen 2
S Methode übergibt immer den gleichen Wert Allgemeine Java-Themen 21
J Was ist schneller? Neue Variable oder neuer Wert speziell int Allgemeine Java-Themen 3
M Bit Wert umdrehen Allgemeine Java-Themen 5
J ArrayList aus Point-Objekten nach dem x-Wert ordnen Allgemeine Java-Themen 2
B Wert mit Adresse auslesen Allgemeine Java-Themen 11
S Array: Anzahl Elemente mit best. Wert zählen Allgemeine Java-Themen 4
M Ein Array-Wert soll sich verändern, aber 2 tun es? Allgemeine Java-Themen 7
S Prüfen auf Hex-Wert fester Länge! Allgemeine Java-Themen 5
G transientes Objekt mit Wert initialisieren? Allgemeine Java-Themen 7
J in einer static Variable Wert ändern Allgemeine Java-Themen 6
reibi double-Wert auf 2 Stellen nach dem Komma abschneiden Allgemeine Java-Themen 6
S CRC wert berechnen ergibt 0 ? Allgemeine Java-Themen 9

Ähnliche Java Themen

Neue Themen


Oben