Taschenrechner hilfe!

Hey alle Zusammen! Ich habe diesen code geschrieben aber wenn ich ihn starte und eine zahl eingebe wird angezeigt und das programm beendet:

Gib die erste Zahl ein:
1
Gib die zweite Zahl ein:
Ohhh ein Fehler ist aufgetreten. Hast du Buchstaben eingegeben?
Das Programm wurde beendet!

Dies ist der Code:

Java:
package de.Daniel.Taschenrechner;

import java.util.Scanner;

public class Taschenrechner {

   public static void main(String[] args) {
      
       System.out.println("__________________________Taschenrechner__________________________");
      
       double Zahl1 = zahlAbfragen();
       double Zahl2 = zahlAbfragen2();
       System.out.println(Zahl1 + Zahl2);
      
      
          
       }
  
   public static double zahlAbfragen() {
       System.out.println("Gib die erste Zahl ein:");
       Scanner sc = new Scanner(System.in);
       try {
            double Zahl = sc.nextDouble();
  
       }catch(Exception e){
          
           System.out.println("Ohhh ein Fehler ist aufgetreten. Hast du Buchstaben eingegeben?");
           System.out.println("Das Programm wurde beendet!");
           System.exit(0);
          
       }
       sc.close();
       return 0;
      
          
   }
  
   public static double zahlAbfragen2() {
       System.out.println("Gib die zweite Zahl ein:");
       Scanner sc = new Scanner(System.in);
       try { 
          
           double Zahl = sc.nextDouble();
          
        
          
  
       }catch(Exception e){
          
           System.out.println("Ohhh ein Fehler ist aufgetreten. Hast du Buchstaben eingegeben?");
           System.out.println("Das Programm wurde beendet!");
           System.exit(0);
          
       }
       sc.close();
       return 0;
      
          
   }
  
   public static int Operator() {
      
       System.out.println("Gib die einen Operator ein:");
       System.out.println("1 zum addieren|2 zum subtrahieren|3 zum multiplizieren und 4 zum dividieren");
       Scanner sc = new Scanner(System.in);
       try {
            switch(sc.nextInt()) {
          
            case 1:
                System.out.println();
          
            }
  
       }catch(Exception e){
          
           System.out.println("Ohhh ein Fehler ist aufgetreten. Hast du Buchstaben eingegeben?");
           System.out.println("Das Programm wurde beendet!");
           System.exit(0);
      
      
   }
       sc.close();
       return 0;
   }
   }
 
Zuletzt bearbeitet von einem Moderator:

Kavar

Mitglied
Habe glaube, trotz Schwierigkeiten beim lesen, das Problem gefunden.

Wenn der Scanner in "zahlAbfragen" geschlossen wird, wird auch der System.in Stream geschlossen.
Dieser lässt sich wohl auch nicht wieder öffnen. Siehe auch hier.

Eine Lösung wäre es nun, entweder den Scanner nicht zu schließen oder, wenn man es sauber machen möchte, den Scanner in der Main zu öffnen und an die beiden Methoden mitzugeben.
 
So, Jetzt habe ich meinen Code überarbeitet aber es gibt immernoch ein Problem. Ich möchte ja in beiden Blöcken die Zahl returnen, aber sie wird nicht erkannt weil sie im try catch block ist. Was kann ich tun?

Java:
package de.Daniel.Taschenrechner;

import java.util.Scanner;

public class Taschenrechner2 {

    public static void main(String[] args) {
       
       
        System.out.println("______________________________Taschenrechner______________________________");
       
        float Zahl1 = Zahl1();
        float Zahl2 = Zahl2();
        System.out.println(Zahl1);
       
       
       
        }
       
       
       

    public static float Zahl1() {
        System.out.println("Gib die erste Zahl ein:");
        Scanner sc = new Scanner(System.in);
        try {
             float Zahl = sc.nextFloat();
   
        }catch(Exception e){
           
            System.out.println("Ohhh ein Fehler ist aufgetreten. Hast du Buchstaben eingegeben?");
            System.out.println("Das Programm wurde beendet!");
            System.exit(0);
           
        }
        return Zahl;
       
       
       
       
           
    }
   
    public static float Zahl2() {
        System.out.println("Gib die zweite Zahl ein:");
        Scanner sc = new Scanner(System.in);
        try {
             float Zahl = sc.nextFloat();
   
        }catch(Exception e){
           
            System.out.println("Ohhh ein Fehler ist aufgetreten. Hast du Buchstaben eingegeben?");
            System.out.println("Das Programm wurde beendet!");
            System.exit(0);
           
        }
       
        return Zahl;
       
           
    }
   
}
 

FourOhFour

Aktives Mitglied
Bewege einfach das return wie schon angesprochen in das try-Feld und bei catch z.B.
Java:
throw e;
unter das
Java:
System.exit(0);
-> dabei wird dir die Fehlermeldung nicht mehr Angezeigt und es sollte so funktionieren, wie du es dir vorgestellt hast.
Ansonsten könntest du immer einen Standardwert zurückgeben, falls etwas schiefläuft. Das wird dir jedoch bereits bewusst sein.
 
Ich habe es jetzt schon so gelöst aber wenn ich jetzt das programm teste passiert das:

______________________________Taschenrechner______________________________
Gib die erste Zahl ein:
1
Gib die zweite Zahl ein:
2
Zum addieren gib add ein, zum subtrahieren sub zum multiplizieren mul und zum dividieren div!
Gib die erste Zahl ein:
mul
Ohhh ein Fehler ist aufgetreten. Hast du Buchstaben eingegeben?
Das Programm wurde beendet!
4

Hier der Code:

Java:
package de.Daniel.Taschenrechner;

import java.util.Scanner;

public class Taschenrechner2 {

    public static void main(String[] args) {
       
       
        final String add = "add";
        final String sub = "sub";
        final String mul = "mul";
        final String div = "div";
       
        Scanner sc = new Scanner(System.in);
        System.out.println("______________________________Taschenrechner______________________________");
       
        Zahl1();
        Zahl2();
       
        System.out.println("Zum addieren gib add ein, zum subtrahieren sub zum multiplizieren mul und zum dividieren div!");
        double Zahl1 = Zahl1();
        double Zahl2 = Zahl2();
        double Erg1 = Zahl1 + Zahl2;
        double Erg2 = Zahl1 - Zahl2;
        double Erg3 = Zahl1 * Zahl2;
        double Erg4 = Zahl1 / Zahl2;
        switch(sc.next()) {
       
        case add:
            System.out.println("Das Ergebnis ist: " + Erg1);
            break;
           
        case sub:
            System.out.println("Das Ergebnis ist: " + Erg2);
            break;

        case mul:
            System.out.println("Das Ergebnis ist: " + Erg3);
            break;
           
        case div:
            System.out.println("Das Ergebnis ist: " + Erg4);
            break;
       
        }
       
        }
       
       
       

    public static double Zahl1() {
        System.out.println("Gib die erste Zahl ein:");
        Scanner sc = new Scanner(System.in);
        double Zahl;
        Zahl = 0;
        try {
            
            Zahl = sc.nextDouble();
        }catch(Exception e){
           
            System.out.println("Ohhh ein Fehler ist aufgetreten. Hast du Buchstaben eingegeben?");
            System.out.println("Das Programm wurde beendet!");
            System.exit(0);
           
           
        }
       
       
       
        return Zahl;
       
           
    }
   
    public static double Zahl2() {
        System.out.println("Gib die zweite Zahl ein:");
        Scanner sc = new Scanner(System.in);
        double Zahl = 0;
       
        try {
            
            Zahl = sc.nextDouble();
   
        }catch(Exception e){
           
            System.out.println("Ohhh ein Fehler ist aufgetreten. Hast du Buchstaben eingegeben?");
            System.out.println("Das Programm wurde beendet!");
            System.exit(0);
           
        }
       
        return Zahl;
       
           
    }
   
}
 

FourOhFour

Aktives Mitglied
Du erwartest einen String... Strings haben eine besonderheit bei der Eingabe, was int, double, etc. nicht brauchen. char hat eine sehr ähnliche, aber nicht die selbe.
Vielleicht kommst du ja so drauf.
Dein Code ist dennoch wirklich komisch... lernst du per Buch? Internet? Schule/Uni?
Mfg.
 
Tatsächlich weiß ich nicht welche besonderheit Strings bei der eingabe haben aber ich habe es schonmal mit genau diesem
switch Programmiert und es hat funktioniert.

Ps ich lernen über das internet und bücher
Mfg.
 

Meniskusschaden

Top Contributor
Dein Programm liest zuerst die beiden Zahlen ein und gibt dann die Eingabeaufforderung für die Rechenoperation aus. Danach versucht dein Programm noch einmal die beiden Zahlen einzulesen, aber der Benutzer hat ja eine Rechenoperation eingegeben. Das Programm versucht also, z.B. den String "mul" als Datentyp double zu verwenden, was natürlich nicht funktionieren kann.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Hilfe bei Java Taschenrechner Java Basics - Anfänger-Themen 25
J Kleiner Taschenrechner! Anfänger braucht Hilfe :( Java Basics - Anfänger-Themen 2
Z Sehr simpler Taschenrechner - Hilfe! Java Basics - Anfänger-Themen 10
B Erste Schritte Brauche Hilfe bei einem Java-Taschenrechner Java Basics - Anfänger-Themen 11
S Java-Taschenrechner. Hilfe Java Basics - Anfänger-Themen 10
P Hilfe bei nem Taschenrechner Java Basics - Anfänger-Themen 14
M brauche hilfe bei meinem Taschenrechner mit dem "-&quot Java Basics - Anfänger-Themen 4
E Bitte Hilfe Taschenrechner! Java Basics - Anfänger-Themen 13
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
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
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
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
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
F Erste Schritte Frage zu simplem Taschenrechner(switch) Java Basics - Anfänger-Themen 16
L Mein Taschenrechner lässt sich plötzlich nicht mehr öffnen Java Basics - Anfänger-Themen 5
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
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
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
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 Taschenrechner - Wie addiere,multipliziere und subtrahiere ich? Java Basics - Anfänger-Themen 6
D kleiner Taschenrechner mit switch fehlerhaft Java Basics - Anfänger-Themen 1
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
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

Ähnliche Java Themen

Neue Themen


Oben