Methoden Verstehe Feheler nicht!

DaCrazyJavaExpert

Bekanntes Mitglied
Hallo,
ich habe bei meinem Code ein Problem. Ich will zwei Zahlen damit (in diesem Fall) addieren, ich hab jetzt diesen Code hier und irgendwie wird mir das Ergebnis nicht ausgegeben :(. Bitte um Hilfe. Hier der Code :
Code:
import java.util.Scanner;

public class BasicRechner {
    public static void basicRechner() {
        System.out.println(
                "Gebe 2 Zahlen ein und den Rechenoperator, mit denen du mit deinen beiden Zahlen ein Ergebnis bekommen willst!");
        @SuppressWarnings("resource")
        Scanner keyboard = new Scanner(System.in);
        String aufgabe = keyboard.nextLine();
        if (aufgabe.contains("+") || aufgabe.contains("-") || aufgabe.contains("%") || aufgabe.contains("*")) {
            if (aufgabe.contains("+")) {

            } else if (aufgabe.contains("+")) {
                String ersteZahl = aufgabe.substring(0, aufgabe.indexOf('+'));
                String zweiteZahl = aufgabe.substring(aufgabe.indexOf('+')+ 1);
                Integer firstZahl = Integer.parseInt(ersteZahl);
                Integer secondZahl = Integer.parseInt(zweiteZahl);
                int richtigeErsteZahl = firstZahl;
                int richtigeZwieteZahl = secondZahl;
                int ergebnis = richtigeErsteZahl + richtigeZwieteZahl;
                System.out.println(ergebnis);
               
            } else if (aufgabe.contains("-")) {

            } else if (aufgabe.contains("%")) {

            } else if (aufgabe.contains("*")) {

            } else {
                System.err.println("Dieses Rechenzeichen ist nicht verfügbar");
            }
        } else {
            System.err.println("Dieses Rechenzeichen ist nicht verfügbar");
        }
    }
}

Bei Unklarheiten gerne nachfragen!
 

Joose

Top Contributor
Code:
.....
            if (aufgabe.contains("+")) {

            } else if (aufgabe.contains("+")) {
                String ersteZahl = aufgabe.substring(0, aufgabe.indexOf('+'));
                String zweiteZahl = aufgabe.substring(aufgabe.indexOf('+')+ 1);
                Integer firstZahl = Integer.parseInt(ersteZahl);
                Integer secondZahl = Integer.parseInt(zweiteZahl);
                int richtigeErsteZahl = firstZahl;
                int richtigeZwieteZahl = secondZahl;
                int ergebnis = richtigeErsteZahl + richtigeZwieteZahl;
                System.out.println(ergebnis);
             
            } else if (aufgabe.contains("-")) {
.....

Was glaubst du welcher if-Block wird ausgeführt? ;)
Sobald bei einem if/elseif ein if-Block betreten wird, werden die weiteren if Bedingungen gar nicht mehr geprüft!
 

DaCrazyJavaExpert

Bekanntes Mitglied
Code:
.....
            if (aufgabe.contains("+")) {

            } else if (aufgabe.contains("+")) {
                String ersteZahl = aufgabe.substring(0, aufgabe.indexOf('+'));
                String zweiteZahl = aufgabe.substring(aufgabe.indexOf('+')+ 1);
                Integer firstZahl = Integer.parseInt(ersteZahl);
                Integer secondZahl = Integer.parseInt(zweiteZahl);
                int richtigeErsteZahl = firstZahl;
                int richtigeZwieteZahl = secondZahl;
                int ergebnis = richtigeErsteZahl + richtigeZwieteZahl;
                System.out.println(ergebnis);
            
            } else if (aufgabe.contains("-")) {
.....

Was glaubst du welcher if-Block wird ausgeführt? ;)
Sobald bei einem if/elseif ein if-Block betreten wird, werden die weiteren if Bedingungen gar nicht mehr geprüft!
Ich arbeite allerdings gerade nur an einem System mit 2 Zahlen, deshalb braucht man auch nur pro aufgabe eie Operator, aus diesem Grund ist es relativ egal obs else if oder nur if ist
 

Joose

Top Contributor
aus diesem Grund ist es relativ egal obs else if oder nur if ist
Jein ... wenn du nur mit if arbeitest (ohne else) dann werden alle Bedingungen geprüft. Bei if/elseif werden die Bedingungen nur soweit geprüft bis eine "wahr" ergibt und dessen Block ausgeführt wird.

Beispiel:
Java:
if (aufgabe.contains("+")) {

}
if (aufgabe.contains("+")) {
   String ersteZahl = aufgabe.substring(0, aufgabe.indexOf('+'));
   String zweiteZahl = aufgabe.substring(aufgabe.indexOf('+')+ 1);
   Integer firstZahl = Integer.parseInt(ersteZahl);
   Integer secondZahl = Integer.parseInt(zweiteZahl);
   int richtigeErsteZahl = firstZahl;
   int richtigeZwieteZahl = secondZahl;
   int ergebnis = richtigeErsteZahl + richtigeZwieteZahl;
   System.out.println(ergebnis);

}
if (aufgabe.contains("-")) {
   System.out.println("Subtraktion");
}
if (aufgabe.contains("%")) {
   System.out.println("Division");
}
if (aufgabe.contains("*")) {
   System.out.println("Multiplikation");
}
Wenn du statt if/elseif diese Beispiel verwendest, dann dürfte deine Addition klappen.

Du prüfst 2x ob der String aufgabe den String "+" enthält. Der erste if-Block wird ausgeführt, da dieser allerdings leer ist passiert eben gar nichts.
Der 2.Block kann nie betreten werden ;)
 

DaCrazyJavaExpert

Bekanntes Mitglied
Jein ... wenn du nur mit if arbeitest (ohne else) dann werden alle Bedingungen geprüft. Bei if/elseif werden die Bedingungen nur soweit geprüft bis eine "wahr" ergibt und dessen Block ausgeführt wird.

Beispiel:
Java:
if (aufgabe.contains("+")) {

}
if (aufgabe.contains("+")) {
   String ersteZahl = aufgabe.substring(0, aufgabe.indexOf('+'));
   String zweiteZahl = aufgabe.substring(aufgabe.indexOf('+')+ 1);
   Integer firstZahl = Integer.parseInt(ersteZahl);
   Integer secondZahl = Integer.parseInt(zweiteZahl);
   int richtigeErsteZahl = firstZahl;
   int richtigeZwieteZahl = secondZahl;
   int ergebnis = richtigeErsteZahl + richtigeZwieteZahl;
   System.out.println(ergebnis);

}
if (aufgabe.contains("-")) {
   System.out.println("Subtraktion");
}
if (aufgabe.contains("%")) {
   System.out.println("Division");
}
if (aufgabe.contains("*")) {
   System.out.println("Multiplikation");
}
Wenn du statt if/elseif diese Beispiel verwendest, dann dürfte deine Addition klappen.

Du prüfst 2x ob der String aufgabe den String "+" enthält. Der erste if-Block wird ausgeführt, da dieser allerdings leer ist passiert eben gar nichts.
Der 2.Block kann nie betreten werden ;)
Hä? Das ist nichtmal mein Problem mol. Ich weis wie if/if else funktioniert. Wenn die aufgabe 2+2 lauten wird der "+-ifblock ausgeführt. Das problem iwt nur, dass er kein ergebnis ausgibt.
 

Robat

Top Contributor
Hä? Das ist nichtmal mein Problem mol
Doch genau das ist dein Problem.

Java:
if (aufgabe.contains("+")) {
    // 1. BLOCK
} else if (aufgabe.contains("+")) {
   
    // 2. BLOCK
    String ersteZahl = aufgabe.substring(0, aufgabe.indexOf('+'));
    String zweiteZahl = aufgabe.substring(aufgabe.indexOf('+')+ 1);
    Integer firstZahl = Integer.parseInt(ersteZahl);
    Integer secondZahl = Integer.parseInt(zweiteZahl);
    int richtigeErsteZahl = firstZahl;
    int richtigeZwieteZahl = secondZahl;
    int ergebnis = richtigeErsteZahl + richtigeZwieteZahl;
    System.out.println(ergebnis);
}
...

Wie @Joose bereits gesagt hat, hast du 2 Blöcke wo du auf "+" prüfst. Wenn du weißt wie if-else funktioniert muss ich ja nicht noch mal wiederholen warum kein Ergebnis kommt ;)
 

DaCrazyJavaExpert

Bekanntes Mitglied
Oh mein Gott ich bin echt weird. Sorry Leute mir ist grad selbst aufgefallen, dass ich da diese 2 Blöcke hab :(. Hab keine ahnung wie der 2. Block dahin kommt.
Tut mir jedenfalls leid, dass ich wegen so einem Problem so viel , ähm wie soll ich sagen? -Aufwand? betrieben? habe.
Hab das irgendwie zufällig mal eigefügt gehabt und es irgendwie komplett übersehen. :(
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Verstehe Rekursion nicht ganz Java Basics - Anfänger-Themen 7
nbergmann x /= n : Verstehe ich nicht. Java Basics - Anfänger-Themen 24
S Schulaufgabe - verstehe leider die Aufgabe nicht Java Basics - Anfänger-Themen 4
ZH1896ZH Verstehe verschieden Scanner und hasNext() nicht ganz Java Basics - Anfänger-Themen 2
ZH1896ZH OOP Verstehe nicht was der Hinweis bedeutet, bitte um Hilfe! Java Basics - Anfänger-Themen 2
A Hilfe bei Rekursion,Ich verstehe nicht,wie funktioniert die Rekursion in der Methode "walk" Java Basics - Anfänger-Themen 13
A Shopping Cart Programm. Verstehe einige Zusammenhänge nicht Java Basics - Anfänger-Themen 1
T Brauche Hilfe um ein Programm zu verstehe Java Basics - Anfänger-Themen 4
K Erste Schritte Ich verstehe das Summenprogramm nicht Java Basics - Anfänger-Themen 10
S Ich verstehe die RegEx Tabelle von Javadoc nicht so ganz Java Basics - Anfänger-Themen 3
V Erste Schritte Array.length[x] in einer Schleife - ich verstehe das nicht Java Basics - Anfänger-Themen 1
Y Erste Schritte Ich verstehe this. nicht so richtig Java Basics - Anfänger-Themen 5
Henri ich verstehe gerade nicht die Methode Java Basics - Anfänger-Themen 6
dave253 Ich verstehe folgenden Code nicht.. Java Basics - Anfänger-Themen 12
V Verstehe die Lösung einer Aufgabe von Grunkurs-Java nicht. Java Basics - Anfänger-Themen 11
J Verstehe die NullPointerException nicht Java Basics - Anfänger-Themen 1
J Verstehe meine HashSet Ausgabe nicht Java Basics - Anfänger-Themen 5
P Verstehe Lösung einer Aufgabe von "Grundkurs-Java" nicht Java Basics - Anfänger-Themen 5
O Ich verstehe nicht, was Eclipse von mir will Java Basics - Anfänger-Themen 10
G Methoden Verstehe nicht was in der Methode gemacht wird? Java Basics - Anfänger-Themen 5
M Verstehe das Programm(Quellcode) nicht!! Java Basics - Anfänger-Themen 12
B Verstehe ZufallInt = (int) (Math.random() * 5 + 1); nicht Java Basics - Anfänger-Themen 9
J Rekursiver Horner-Schema-Algorithmus - Verstehe ich ihn richtig? Java Basics - Anfänger-Themen 2
F verstehe diese Variable nicht... Java Basics - Anfänger-Themen 4
A Codezeile die ich nicht verstehe Java Basics - Anfänger-Themen 7
Pentalon Ein Aufruf den ich nicht verstehe Java Basics - Anfänger-Themen 11
V Verstehe die Logik nicht ... Java Basics - Anfänger-Themen 30
C rekursive Methode verstehe nicht! Java Basics - Anfänger-Themen 3
B verstehe methode nicht methode Java Basics - Anfänger-Themen 2
B Erste Schritte Verstehe das nicht Java Basics - Anfänger-Themen 3
C verstehe get und set nicht Java Basics - Anfänger-Themen 3
J Interface Wie funktioniert das mit den Interfaces. Ich verstehe es einfach nicht! :( Java Basics - Anfänger-Themen 15
T ich verstehe array nicht! Java Basics - Anfänger-Themen 11
P for Schleife mit break, verstehe die Ausgabe nicht Java Basics - Anfänger-Themen 6
A Verstehe readLine()-Funktion nicht Java Basics - Anfänger-Themen 3
A Verstehe das GUI nicht! Java Basics - Anfänger-Themen 7
D Verstehe Zusammenhang nicht- Und ihr? Java Basics - Anfänger-Themen 4
M THREADS - Ich verstehe es nicht Java Basics - Anfänger-Themen 10
T Verstehe Bufferreader prinzip nicht Java Basics - Anfänger-Themen 3
E I-JVM verstehe ich das richtig (bytecode aufgabe) Java Basics - Anfänger-Themen 2
M Verstehe Aufgabe nicht, wie kann man schleifen einbauen? Java Basics - Anfänger-Themen 5
N Verstehe Step10 bei jME Eclipsetutorial nicht Java Basics - Anfänger-Themen 4
L Verstehe den Wert nicht! If-Anweisung Java Basics - Anfänger-Themen 5
N Verstehe diese Aufgabe nicht! Java Basics - Anfänger-Themen 16
Rudolf Verstehe das Ergebnis nicht - bitte erklären Java Basics - Anfänger-Themen 7
S Finde den Fehler nicht/ verstehe Anweisung nicht Java Basics - Anfänger-Themen 12
K Ich verstehe switch einfach nicht Java Basics - Anfänger-Themen 4
C Verstehe Code-Teil nicht. Java Basics - Anfänger-Themen 2
S Ich verstehe diese Methode nicht! Java Basics - Anfänger-Themen 6
G Verstehe das nicht. bitte um hilfe Java Basics - Anfänger-Themen 13
R Thread startet nicht, verstehe nicht warum Java Basics - Anfänger-Themen 2
R Verstehe die Ausgabe von folgendem Code nicht Java Basics - Anfänger-Themen 4
A verstehe aufgabenstellung nicht! Java Basics - Anfänger-Themen 47
S verstehe den fehler nicht Java Basics - Anfänger-Themen 14
C Verstehe die Syntax nicht! Java Basics - Anfänger-Themen 2
M Verstehe den Quellcode nicht ganz Java Basics - Anfänger-Themen 3
7 Verstehe Programm nicht Java Basics - Anfänger-Themen 6
G verstehe das problem nicht :( Java Basics - Anfänger-Themen 4
S RegEx Syntax - ich verstehe sie einfach nicht! Java Basics - Anfänger-Themen 3
G verstehe den unterschied zwischen equals und == nicht Java Basics - Anfänger-Themen 3
E Verstehe eine Schleife nicht Java Basics - Anfänger-Themen 5
B Eine Linie zeichnenmit Java, ich verstehe das einfach nicht Java Basics - Anfänger-Themen 4
G Verstehe einen Aufruf absolut nicht Java Basics - Anfänger-Themen 2
A "Hello World"-Programm läuft nicht Java Basics - Anfänger-Themen 16
D Regex greift nicht richtig Java Basics - Anfänger-Themen 4
richis-fragen JTable den angezeigten WERT nicht den Wert aus dem Model ausgeben. Java Basics - Anfänger-Themen 3
richis-fragen JTable Header ausgeblendete (width = 0) nicht per mouseDragged aufziehen. Java Basics - Anfänger-Themen 9
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
S nach Import von jars (PLC4x) in Eclipse kann nicht mehr compiliert werden Java Basics - Anfänger-Themen 9
J Datenüberwachung funktioniert nicht Java Basics - Anfänger-Themen 9
S Wie debugge ich dies am besten: SingleThreadExecutor führt Task nicht aus..? Java Basics - Anfänger-Themen 29
H JDK installieren jdk-21 wird nicht erkannt Java Basics - Anfänger-Themen 13
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
mo13 JTextField funktioniert nicht Java Basics - Anfänger-Themen 4
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
K TicTacToe belegtes feld nicht neu besetzbar Java Basics - Anfänger-Themen 1
K TicTacToe belegtes Feld nicht neu besetzbar Java Basics - Anfänger-Themen 3
A Warum wird mein jdk nicht gefunden? Java Basics - Anfänger-Themen 3
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
G Mit jPackage erstellte EXE funktioniert nicht Java Basics - Anfänger-Themen 2
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
G Robot funktioniert nicht bei SelectionListener Java Basics - Anfänger-Themen 6
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
missy72 Erste Schritte (nicht) Deterministischer endlicher Automat Java Basics - Anfänger-Themen 9
T Getter/Setter - wie sieht ein Setter aus? Und wie nicht? Java Basics - Anfänger-Themen 34
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
P Netbeans installation geht nicht Java Basics - Anfänger-Themen 26
R RegEx funktioniert nicht Java Basics - Anfänger-Themen 14

Ähnliche Java Themen


Oben