Taschenrechner mit switch und while funktioniert noch nicht richtig

L.E.O.C.Y.

Mitglied
Hallo Leute,
unten seht ihr meinen bisherigen Code. Meine Aufgabe da zu lautet einen Taschenrechner den wir schon programmiert haben so umzuschreiben, dass er mit einer while schleife erweitert wird und zusätzlich beim Operator die Möglichkeit b für das Beenden des Programms dazukommt.
Ich hab es mittlerweile geschafft, dass die while schleife funktioniert. Allerdings beendet es nicht das Programm, wenn man bei Operator b eingibt.
Vllt kann mir ja jemand helfen. Bin echt am verzweifeln. Und ich brauche die Lösung leider schon bis morgen abend.
Danke schon mal im Voraus
LG Melanie

Java:
public class Rechnen {
  
    public static double rechner( double zahl1, char operator, double zahl2 )
    {
        double result = 0.0d;
        boolean Result;
        
        switch( operator )
            {
            case '+':
                result = zahl1 + zahl2;
            break;

            case '-':
                result = zahl1 - zahl2;
            break;

            case '/':
            case ':':
                result = zahl1 / zahl2;
            break;
              
            case '*':
            case 'x':
                result = zahl1 * zahl2;
                    
            case 'b':
                Result = false;
                break;
                          
            default:
                throw new IllegalArgumentException("F");
            }
      
        return(result);
      
    }
        public static void main( String[] args)
        {
            boolean Result;
            while (Result = true) {          
            char operator = javax.swing.JOptionPane.showInputDialog( "Operator eingeben (+ , - , / , : , * , x, b (für beenden))").charAt(0);
            double zahl1 = Double.parseDouble(javax.swing.JOptionPane.showInputDialog( "Erste Zahl eingeben" ) );
            double zahl2 = Double.parseDouble(javax.swing.JOptionPane.showInputDialog( "Zweite Zahl eingeben" ) );
            System.out.println( rechner( zahl1, operator, zahl2 ) );
            }
        }
        }
 

Robat

Top Contributor
Result ist doch schon ein Boolean.
Solange Result true ist soll deine schleife weiterlaufen.
Vergleiche erledigst du mit == und nicht mit =
 

Tarrew

Top Contributor
while(result) ist das gleiche wie while(result==true).

Schreibs wie du willst in deiner Schleife. Nur nicht mit einem einfachen = wie Robat schon sagte.
 

Robat

Top Contributor
Die Methode rechner liefert einen Boolean zurück den du momentan vernachlässigst.

Verstehst du deinen Code überhaupt?
 

L.E.O.C.Y.

Mitglied
Naja sagen wirs so: Den Code verstehe ich solange es die alte Variante ist, wo nur gefragt wird nach Operator - Zahl1 -Zahl2 und dann das Ergebnis rauskommt - Ende des Programms.
Mit der while schleife habe ich etwas rumprobiert, da ich mit der noch nie gearbeitet habe. Leider wurde uns auch nicht so ganz gut erklärt wie man die bedingung bei while eig genau betitelt. Und da ja jetzt die Aufgabe ist, dass man eben eine schleife einbauen soll die solange das schema operator - zahl1 - zahl2 - ergebnis wiederholt bis bei Operator ein b geschrieben wird, tue ich mir da etwas schwer, da ich nicht so genau verstehe wie ich das mit der bedingung bei while umsetzen kann.
Mein erster schritt war, bei case den fall 'b' miteinzubringen.
Danach hab ich erstmal die while Schleife gesetzt - nur halt eben ohne Bedinung.
Da hab ich dann ewig rumprobiert und bin halt immer noch nicht vorwärtsgekommen was bei der Klammer genau reinmuss, damit eben im fall 'b' das programm beendet wird.
 

L.E.O.C.Y.

Mitglied
das ist der code ohne rumprobieren (habe aber die while schleife mal drinnen gelassen) und ab hier scheitert es:
mir fehlt halt bei case 'b': etwas und unten bei while
Java:
public class Rechnen {
  
    public static double rechner( double zahl1, char operator, double zahl2 )
    {
        double result = 0.0d;
      
        
        switch( operator )
            {
            case '+':
                result = zahl1 + zahl2;
            break;

            case '-':
                result = zahl1 - zahl2;
            break;

            case '/':
            case ':':
                result = zahl1 / zahl2;
            break;
              
            case '*':
            case 'x':
                result = zahl1 * zahl2;
                    
            case 'b':
                ;
                break;
                          
            default:
                throw new IllegalArgumentException("F");
            }
      
        return(result);
      
    }
        public static void main( String[] args)
        {
          
            while () {          
            char operator = javax.swing.JOptionPane.showInputDialog( "Operator eingeben (+ , - , / , : , * , x, b (für beenden))").charAt(0);
            double zahl1 = Double.parseDouble(javax.swing.JOptionPane.showInputDialog( "Erste Zahl eingeben" ) );
            double zahl2 = Double.parseDouble(javax.swing.JOptionPane.showInputDialog( "Zweite Zahl eingeben" ) );
            System.out.println( rechner( zahl1, operator, zahl2 ) );
            }
        }
        }
 

Robat

Top Contributor
Verstehst du das?
Solange die Bedingung in der Schleife wahr ist wird sie noch mal ausgeführt.
Java:
public static boolean rechne(..) {
       boolean result;
      // mache was


       return result;
}

public static void main(String[] arg) {
      boolean result = true;

       while(result) {
              // mache was
              result = rechne(...);
        }
}

Ps: sorry für die Formatierung. Bin am Handy ;)
 

L.E.O.C.Y.

Mitglied
ja das verstehe ich :D
aber ich weiß halt nicht was ich bei case 'b' und while schreiben muss damit er dann erkennt: oh da muss jetzt das programm beendet werden
 

Meniskusschaden

Top Contributor
Die Methode rechner liefert einen Boolean zurück den du momentan vernachlässigst.
Nein, sie liefert die double-Variable result zurück und der Wert wird auch für die Ausgabe verwendet. Die lokale Boolean-Variable Result wird nicht verwendet. In der main-Methode gibt es auch eine lokale Boolean-Variable Result. Aber die bekommt natürlich nichts davon mit, was mit Result in der Methode rechne() passiert.
Meines Erachtens sollte rechne() gar nicht erst aufgerufen werden, wenn ein b eingegeben wurde. Dementsprechend gehört das auch nicht in das Switch-Statement, sondern sollte in der Hauptschleife abgewickelt werden.
 

L.E.O.C.Y.

Mitglied
Nein, sie liefert die double-Variable result zurück und der Wert wird auch für die Ausgabe verwendet. Die lokale Boolean-Variable Result wird nicht verwendet. In der main-Methode gibt es auch eine lokale Boolean-Variable Result. Aber die bekommt natürlich nichts davon mit, was mit Result in der Methode rechne() passiert.
Meines Erachtens sollte rechne() gar nicht erst aufgerufen werden, wenn ein b eingegeben wurde. Dementsprechend gehört das auch nicht in das Switch-Statement, sondern sollte in der Hauptschleife abgewickelt werden.
Ok und das heißt? wie muss man das dann umschreiben?
 

truesoul

Top Contributor
Hallo L.E.O.C.Y

was Meniskusschaden meint ist das du in dieser
Java:
while(wo ist die Bedingung?){         
   char operator = javax.swing.JOptionPane.showInputDialog( "Operator eingeben (+ , - , / , : , * , x, b (für beenden))").charAt(0);
  
}

abfragen solltest ob 'b' eingegeben wurde und nicht in der Methode rechner

Grüße
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
W Taschenrechner mit Switch case Java Basics - Anfänger-Themen 4
F Erste Schritte Frage zu simplem Taschenrechner(switch) Java Basics - Anfänger-Themen 16
D kleiner Taschenrechner mit switch fehlerhaft Java Basics - Anfänger-Themen 1
F Datentypen Ganz simpler Taschenrechner mit switch Java Basics - Anfänger-Themen 10
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
R Operatoren Rechenoperation verwenden für Taschenrechner. Java Basics - Anfänger-Themen 32
S while Schleife Taschenrechner Java Basics - Anfänger-Themen 1
J Taschenrechner mit mehr als 2 Zahlen. Java Basics - Anfänger-Themen 18
R Einfacher Taschenrechner mit Eclipse Java Basics - Anfänger-Themen 3
M Einfacher Taschenrechner Java Basics - Anfänger-Themen 2
Fiedelbambu Prüfen von Komma stelle beim Taschenrechner Java Basics - Anfänger-Themen 5
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
Y Taschenrechner programmieren Java Basics - Anfänger-Themen 3
G Taschenrechner ergibt Fehler in if-Abfrage Java Basics - Anfänger-Themen 6
K Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an. Java Basics - Anfänger-Themen 8
E JavaFX Taschenrechner Eingabe im Textfield beschränken Java Basics - Anfänger-Themen 2
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
W Taschenrechner Java Basics - Anfänger-Themen 11
A Taschenrechner mit Gui erstellen Java Basics - Anfänger-Themen 9
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
P Taschenrechner mit unendlich vielen Eingabemöglichkeiten Java Basics - Anfänger-Themen 1
V Erste Schritte Taschenrechner mit beliebig vielen Zahlen Java Basics - Anfänger-Themen 5
S Taschenrechner Java Basics - Anfänger-Themen 13
P Taschenrechner Text übertragung Java Basics - Anfänger-Themen 3
S Compiler-Fehler Basic- Taschenrechner/ Fehler Java Basics - Anfänger-Themen 8
S Basic- Taschenrechner? Java Basics - Anfänger-Themen 7
P Hilfe bei Java Taschenrechner Java Basics - Anfänger-Themen 25
L Mein Taschenrechner lässt sich plötzlich nicht mehr öffnen Java Basics - Anfänger-Themen 5
S Taschenrechner hilfe! Java Basics - Anfänger-Themen 17
H Java Taschenrechner Java Basics - Anfänger-Themen 4
R Variablen Taschenrechner mit Komfortfunktionen Java Basics - Anfänger-Themen 2
J RPN Taschenrechner - keine Lösung!! Java Basics - Anfänger-Themen 84
M Java Taschenrechner (if-else) Java Basics - Anfänger-Themen 11
Q simpler Taschenrechner Java Basics - Anfänger-Themen 34
R Taschenrechner NullPointerException Java Basics - Anfänger-Themen 1
R Variablen Weitergehenderr Taschenrechner Java Basics - Anfänger-Themen 4
F Taschenrechner "Error loading class..." Java Basics - Anfänger-Themen 5
M Java Taschenrechner Programmieren Java Basics - Anfänger-Themen 12
P Erste Schritte Taschenrechner mit if-else Anweisung Java Basics - Anfänger-Themen 6
G Taschenrechner gibt nur 0.0 aus Java Basics - Anfänger-Themen 8
A Taschenrechner programmieren Java Basics - Anfänger-Themen 21
Z Java Taschenrechner Java Basics - Anfänger-Themen 6
J Kleiner Taschenrechner! Anfänger braucht Hilfe :( Java Basics - Anfänger-Themen 2
C Taschenrechner in Java Java Basics - Anfänger-Themen 6
J Erste Schritte Java CMD Taschenrechner mit Parametern! Java Basics - Anfänger-Themen 16
J Taschenrechner: Probleme Java Basics - Anfänger-Themen 5
E Taschenrechner problem! Ich komme nicht voran Java Basics - Anfänger-Themen 18
R Erste Schritte Taschenrechner mit Schleife Java Basics - Anfänger-Themen 24
Lord.Djerun (Taschenrechner Netbeans) Komma nur einmal schreiben & 0 ersetzen Java Basics - Anfänger-Themen 1
Z Taschenrechner - Additions/Substraktions/Multiplikations/Divionsketten! Java Basics - Anfänger-Themen 4
D Taschenrechner Frage Java Basics - Anfänger-Themen 12
Z Sehr simpler Taschenrechner - Hilfe! Java Basics - Anfänger-Themen 10
Z Taschenrechner - Wie addiere,multipliziere und subtrahiere ich? Java Basics - Anfänger-Themen 6
K Taschenrechner im GUI Java Basics - Anfänger-Themen 2
P Taschenrechner, operatoren Java Basics - Anfänger-Themen 4
D Simpler Taschenrechner Java Basics - Anfänger-Themen 6
A Anfänger Taschenrechner Frage Java Basics - Anfänger-Themen 14
R Erste Schritte Taschenrechner - Punkt-vor-Strich Rechnung Java Basics - Anfänger-Themen 1
S Operatoren Taschenrechner Ergebnis ausgeben Java Basics - Anfänger-Themen 7
A Taschenrechner zeigt Error Java Basics - Anfänger-Themen 7
J Taschenrechner Funktion Java Basics - Anfänger-Themen 18
M Taschenrechner fertigstellung Java Basics - Anfänger-Themen 1
N Methoden Taschenrechner Java Basics - Anfänger-Themen 2
F z = input.nextChar(); PROBLEM Taschenrechner Java Basics - Anfänger-Themen 7
J Scanner Taschenrechner? Java Basics - Anfänger-Themen 7
J Variablen Rechenzeichen und Zahlen verknüpfen für einen Taschenrechner Java Basics - Anfänger-Themen 17
B Klassen Java Taschenrechner mit Klassen und Methoden Java Basics - Anfänger-Themen 12
B Erste Schritte Brauche Hilfe bei einem Java-Taschenrechner Java Basics - Anfänger-Themen 11
R Methoden Taschenrechner Java Basics - Anfänger-Themen 4
P Taschenrechner , IF-Abfrage Java Basics - Anfänger-Themen 12
I Taschenrechner - Methoden implementieren Java Basics - Anfänger-Themen 5
I Java Starthilfe (Taschenrechner) Java Basics - Anfänger-Themen 7
J Taschenrechner Problemchen Java Basics - Anfänger-Themen 3
D Erste Schritte Taschenrechner Java Basics - Anfänger-Themen 11
K taschenrechner - Fehler beim Kürzen eines Bruches finden Java Basics - Anfänger-Themen 20
J Taschenrechner Punkt vor Strich Java Basics - Anfänger-Themen 9
A Taschenrechner programmieren Java Basics - Anfänger-Themen 5
M Ausklappbares Fenster bei grafischem Taschenrechner Java Basics - Anfänger-Themen 2
M Dividieren bei Grafischem Taschenrechner klappt nicht Java Basics - Anfänger-Themen 2
N Taschenrechner mit Unterprogra Java Basics - Anfänger-Themen 6
C Taschenrechner Java Basics - Anfänger-Themen 12
Z Taschenrechner programmieren Java Basics - Anfänger-Themen 5
E Erste Schritte Taschenrechner Java Basics - Anfänger-Themen 8
K Taschenrechner Java Basics - Anfänger-Themen 25
J Textfeld für Taschenrechner Java Basics - Anfänger-Themen 3
D Taschenrechner Java Basics - Anfänger-Themen 28
A Taschenrechner-GUI mit BorderLayout? Java Basics - Anfänger-Themen 6
W [PROJEKT] Simpler grafischer Taschenrechner Java Basics - Anfänger-Themen 8
M Taschenrechner mit JApplet Java Basics - Anfänger-Themen 26
J Grafischen Taschenrechner programmieren - Frage dazu Java Basics - Anfänger-Themen 12
W Taschenrechner Java Basics - Anfänger-Themen 2
T Tasten vom Taschenrechner? Java Basics - Anfänger-Themen 3
S Datentypen Taschenrechner Java Basics - Anfänger-Themen 13
J Taschenrechner Java Basics - Anfänger-Themen 5
J Taschenrechner Java Basics - Anfänger-Themen 9
M While bei einem Taschenrechner Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben