Input/Output Input überprüfen und weiterverarbeiten

Asdf11

Mitglied
Hallo,

ich durchsuche das Netz schon seit 2 Tagen und geben langsam auf. Ich habe einen Input in die Console, diesen möchte ich weiterverarbeiten, also ich gebe 1 ein dann möchte in meinem taschenrechner addieren, 2 subtrahieren usw... 0 ist beenden.

Ich komme allerdings über einen Punkt nicht weiter:
[Java]
import static java.lang.Math.sqrt;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.lang.System;
public class CopyOfTestCalculator {

/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub

CopyOfTestCalculator CalcObj = new CopyOfTestCalculator();

CalcObj.calc();
}


public int Reader() throws Exception {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);

while (true) {
System.out.print("Ihre Auswahl: ");
int Eingabe;
try {
Eingabe = Integer.parseInt(br.readLine());
} catch (NumberFormatException nfe) {
System.out.println("Incorrect format!");
continue;
}
return Eingabe;
}
}

public void calc() throws Exception{
System.out.println("Bitte wählen Sie eine Rechenoperation:");
System.out.println("1: Addition");
System.out.println("2: Subtraktion");
System.out.println("3: Multiplikation");
System.out.println("4: Division");
System.out.println("5: Quadratwurzel");
System.out.println("0: Abbruch des Programms");

// Ab hier muss irgendwo das Problem sein :(
if (Reader() == 1)
System.out.println("Auswahl: 1. Addition");
else if (Reader() == 2)
System.out.println("Auswahl: 2. Subtraktion");
else if (Reader() == 0)
return; //Ist es oke so ein Programm abzubrechen?


}


}
[/code]


Das Problem ist diese if Schleife.
Wenn ich 0 eingebe, muss ich dreimal 0 eingeben bis es abbreicht, bei 1 nur einmal bei 2 zweimal...

Beispiel der Console:

(Bitte wählen sie(...)
Ihre Auswahl: 1
Auswahl: 1. Addition) So weit so gut

(Bitte wählen sie(...)
Ihre Auswahl: 2
Ihre Auswahl: 2
Auswahl: 2. Subtraktion) Ich will es aber nur einmal eingeben!!!

(Bitte wählen sie(...)
Ihre Auswahl: 0
Ihre Auswahl: 0
Ihre Auswahl: 0
-Abbruch-) Hier muss ich schon dreimal die 0 eingeben.

Ich weiß dass ich irgendwie die If Abfrage zu oft aufrufe, aber ich finde das Problem nicht.

Helft mir bitte ich weiß grad wirklich nich mehr weiter...
 

Michael...

Top Contributor
Du rufst in jedem if die Methode Reader() auf, deshalb musst Du bei 0 (die dritte Prüfung) drei Eingaben machen. ==> die Methode einmal aufrufen und den Rückgabewert in einer Variablen speichern. Im if Konstrukt vergleichst Du nur noch die Variable.

Methodennamen schreibt man klein und sie sollten beschreiben was die Methode macht.
z.B. readInt()
 
T

TryToHelp

Gast
Ja du hast die Stelle schon richtig gefunden.
Dein Problem ist, das du bei jedem neuen if deines if-else konstruktes ein neues read (also von der konsole lesen) machst.

Java:
...
// Das sollte dann dein Problem lösen
        int eingabe=Reader();
        if (eingabe == 1)
            System.out.println("Auswahl: 1. Addition");
        else if (eingabe == 2)
            System.out.println("Auswahl: 2. Subtraktion");
        else if (eingabe == 0)
            return; //Ist es oke so ein Programm abzubrechen?

kleiner Tipp Funktionen schreibt man wie Variablen klein, nur Klassennamen groß ;-)

[EDIT]Zu langsam[/EDIT]
 
H

hüteüberhüte

Gast
Hhm, erst mal Methodennamen und Variablen klein, Klassennamen groß, siehe UpperCamelCase und lowerCamelCase.

Du musst das Ergebnis deiner "Einlese"-Methode in einer Variablen speichern und kannst dann ggf. bis zu 3 mal vergleichen.

switch case würde sich hier anbieten.
 

Asdf11

Mitglied
Vielen Dank :) Genau diese Idee hat mir gefehlt :)

Es kommt hier allerdings ein weiteres Problem hinzu was ich überhaupt nicht nachvollziehen kann:

wenn eine zweite Zeile nach der If Bedingenung hinzukommt, dann kann ich kein else if mehr hinzufügen:

Java:
int eingabeTest= Reader();
		if (eingabeTest == 1)
			System.out.println("Auswahl: 1: Addition");
			System.out.println("Geben sie die zu addierenden Zahlen ein: ");
                //Hier wird else if rot unterstrichen, wenn ich die die zweite System.out Zeile streiche, so dass nur noch eine Zeile übrig bleibt, taucht der Fehler nicht auf??
		else if (eingabeTest == 2)
 
Zuletzt bearbeitet:
T

TryToHelp

Gast
das liegt daran, dass irgendwie alle Welt die ifs ohne geschweiften Klammern macht, das ist ein unding und funktioniert nur bei einer Zeile, deswegen ifs immer so

Java:
if (Bedingung){
   Anweisung1;
   Anweisung2;
   ...
}else{
  Anweisung3;
  Anweisung4;
  ...
}
 
H

hüteüberhüte

Gast
Hhm, mach das ganze doch so (um ein Grundgerüst zu haben):

Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * @author hütte
 */
public class Calc {

    private static final BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

    private static void switchh() throws IOException {
        switch (readInt()) {
            case 1:
                add();
                break;
            case 2:
                sub();
                break;
            case 3:
                System.out.println("3 eingegeben. Toll. ^^");
                break;
            default:
                return;
        }
        switchh();
    }

    private static int readInt() throws IOException {
        System.out.print("Bitte Int eingeben: ");
        try {
            return Integer.parseInt(reader.readLine());
        } catch (NumberFormatException nfe) {
            return readInt();
        }
    }

    private static void add() {
        throw new UnsupportedOperationException("Not yet implemented");
    }

    private static void sub() {
        throw new UnsupportedOperationException("Not yet implemented");
    }

    public static void main(String[] args) throws IOException {
        switchh();
    }
}

Bei switch case ist die Klammerung mehrerer Anweisungen nicht erforderlich.
 

Asdf11

Mitglied
Habs als switch gemacht, mich hat nur interessiert wieso es mit if nicht ging...

Ja in ganze vielen seiten wird ein if Template ohne geschweifte Klammern beschrieben...

Danke
 
T

TryToHelp

Gast
Ja das ist auch für sowas besser geeignet ;-)

Mhh komisch, also ich es mit der geschweiften Klammer gelernt und dann irgendwann später mal gelernt, dass es auch ohne geht, da habe ich es aber schon so drinnen, immer die Klammern zu machen ;-) und kann es nur jedem empfehlen, einfach immer nach dem Muster mit den geschweiften Klammern vorzugehen, ob eine Zeile oder mehrere Zeilen ;-)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Scanner Input mit if überprüfen Java Basics - Anfänger-Themen 5
L Wie Input auf verschiedene Kriterien hin überprüfen? Java Basics - Anfänger-Themen 3
P Wie kann ich meine Keylistener Klasse unterscheiden lassen, von welcher "Quelle" der Input kommt? Java Basics - Anfänger-Themen 2
T User input in Verbindung mit ChronoUnit anpassen und falls falsche Eingabe getätigtwird Java Basics - Anfänger-Themen 7
schemil053 Multithread - Input verrutscht während etwas ausgegeben wird Java Basics - Anfänger-Themen 6
S String mit Int input vergleichen Java Basics - Anfänger-Themen 5
javapingu Endlosschleife bei User Input mit try Scanner Java Basics - Anfänger-Themen 7
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
JD_1998 Vektorrechner; User Input -> Index out of bounds Java Basics - Anfänger-Themen 3
I Array übernimmt immer den letzten Input. Java Basics - Anfänger-Themen 14
D Input/Output Input von zwei Koordinaten validieren und anschließend Werte speichern Java Basics - Anfänger-Themen 7
J Sharing Audio input Java Basics - Anfänger-Themen 6
J Fragen zu Input/Output Java Basics - Anfänger-Themen 3
steven789hjk543 Input mit if-else Java Basics - Anfänger-Themen 23
O Input/Output newbile und keine Ahnung! Java Basics - Anfänger-Themen 16
D [AES] input not multiple of 16 Java Basics - Anfänger-Themen 2
J Input/Output Input als Parameter an Methoden übergeben Java Basics - Anfänger-Themen 23
J Input-Variable nicht sichtbar Java Basics - Anfänger-Themen 2
T '>' vor Console input Java Basics - Anfänger-Themen 3
J Input/Output Input Buttons Html mit JSP Java Basics - Anfänger-Themen 3
C Wie kann ich einen User Input mit einer If-Anweisung verbinden? Java Basics - Anfänger-Themen 5
S Tastatur input lesen Java Basics - Anfänger-Themen 7
I Datentypen input.nextCharAt(0) wirft einen Fehler Java Basics - Anfänger-Themen 3
J Input/Output Scanner Input als etwas einsetzen Java Basics - Anfänger-Themen 3
H Methode mit späterem Input Java Basics - Anfänger-Themen 3
S Input/Output Doppelte Input-Abfrage Java Basics - Anfänger-Themen 3
S Input/Output Programm läuft nach input-Abfrage nicht weiter. Java Basics - Anfänger-Themen 2
T Java Input Java Basics - Anfänger-Themen 6
GoldenShadow Input/Output Verschiedene Versionen von Input/Output Java Basics - Anfänger-Themen 3
S LinkedList mit Input vergleichen. Java Basics - Anfänger-Themen 5
A Input/Output Input eingabe in unicode übersetzen Java Basics - Anfänger-Themen 3
N Input/Output Wenn kein Input, dann Fehler anzeigen lassen im JFrame Java Basics - Anfänger-Themen 6
L JTextField/Listener Input Problem Java Basics - Anfänger-Themen 2
O OOP Input & Output in der GUI-Programmierung Java Basics - Anfänger-Themen 2
C Input & Output Frage Java Basics - Anfänger-Themen 4
E Input & Output Problem Java Basics - Anfänger-Themen 7
F z = input.nextChar(); PROBLEM Taschenrechner Java Basics - Anfänger-Themen 7
R User Input wird übersprungen?! Java Basics - Anfänger-Themen 17
C Vector erzeugt neue Indizes nach Input Java Basics - Anfänger-Themen 2
B do while (input = zahl) Java Basics - Anfänger-Themen 6
H Text ausdrucken, den ich entweder direkt in die Kommandozeile schreibe, oder über input redirect übe Java Basics - Anfänger-Themen 2
S Input/Output Data-Input/Output-Stream Java Basics - Anfänger-Themen 2
M Kontaktbuch - Probleme beim Input Java Basics - Anfänger-Themen 3
M Output Input im Cmd Fenster Java Basics - Anfänger-Themen 7
S Input (Blutiger Anfänger) Java Basics - Anfänger-Themen 18
P HTML <input> Feld in einem JLabel auslesen Java Basics - Anfänger-Themen 4
A HSSFWorkbook als Return-Wert für Input in andere Methode Java Basics - Anfänger-Themen 5
S Arrays - Fehler bei der Verarbeitung: For input string: "Berlin" Java Basics - Anfänger-Themen 14
B NumberFormatException: For input string: "" Java Basics - Anfänger-Themen 4
C OOP Java Projekt Bankautomat input fehler Java Basics - Anfänger-Themen 14
D Input Output Java Basics - Anfänger-Themen 8
Spin IllegalArgumentException Input == null Java Basics - Anfänger-Themen 7
N Probleme mit Input/OutputStreams, Daten im Speicher verwalte Java Basics - Anfänger-Themen 2
D Input Scanner Java Basics - Anfänger-Themen 9
F Java login & input (html). Java Basics - Anfänger-Themen 4
N Verschiedene Input/Output Klassen Java Basics - Anfänger-Themen 3
F Verwenden von Input innerhalb eines Applets Java Basics - Anfänger-Themen 3
L StdIn Stdout / Input Output Aufgabe Java Basics - Anfänger-Themen 3
M Input/Output Stream aus einem String Java Basics - Anfänger-Themen 2
G Input Dialog Problem Java Basics - Anfänger-Themen 11
F Input kann nicht verglichen werden Java Basics - Anfänger-Themen 6
J File Input/Output und Applet Java Basics - Anfänger-Themen 2
K Mehrere Werte in einem Switch Case parallel überprüfen Java Basics - Anfänger-Themen 23
Beowend String auf Satzzeichen überprüfen? Java Basics - Anfänger-Themen 6
N String überprüfen Java Basics - Anfänger-Themen 3
A Gleichheit überprüfen Java Basics - Anfänger-Themen 8
N ResultSet auf Einträge überprüfen Java Basics - Anfänger-Themen 5
T Variable von Objekten in einer Methode überprüfen Java Basics - Anfänger-Themen 26
R ISBN-10-Code überprüfen Java Basics - Anfänger-Themen 7
T Diagonale von 2DArray auf gleichheit überprüfen Java Basics - Anfänger-Themen 2
M Wie kann ich den Index i von einer LinkedList überprüfen? Java Basics - Anfänger-Themen 36
P9cman Vokale in einem String überprüfen mittels Rekursion Java Basics - Anfänger-Themen 8
U zwei 2D arrays auf gleich sein überprüfen Java Basics - Anfänger-Themen 14
Y Wie kann man überprüfen, ob bei einem Print Befehl tatsächlich etwas geprintet wurde? Java Basics - Anfänger-Themen 4
P Möglichen Pfad überprüfen Java Basics - Anfänger-Themen 5
Z Kein überprüfen des gesamten Arrays möglich.(Viergewinnt Spiel) Java Basics - Anfänger-Themen 6
C String auf Dualzahl überprüfen Java Basics - Anfänger-Themen 5
P Parameter auf Datenformat überprüfen Java Basics - Anfänger-Themen 5
F Hilfe - Wahrheitswert überprüfen ohne If Java Basics - Anfänger-Themen 2
C Ganzzahlige Werte in Boolean ausgeben und überprüfen ob Primzahl oder nicht, wenn es keine Primzahl ist soll es die Primfaktorzerlegung ausgeben Java Basics - Anfänger-Themen 4
H Harshad-Zahl (Nivenzahl) und Palindrom überprüfen Java Basics - Anfänger-Themen 2
R Wie überprüfen wann der User online oder offline ist? Java Basics - Anfänger-Themen 5
Y Konkrete Hilfe gesucht - Anzahl der Stellen einer eingegebenen Zahl überprüfen Java Basics - Anfänger-Themen 5
S CSV auf doppelte Einträge überprüfen Java Basics - Anfänger-Themen 8
D Klassen Primzahlen überprüfen Java Basics - Anfänger-Themen 3
M Scanner-Eingabe nach gewissem Zeitraum überprüfen Java Basics - Anfänger-Themen 2
T String auslesen bzw. überprüfen Java Basics - Anfänger-Themen 1
Orkanson Methoden String in Wörter zerlegen und Endungen der Wörter überprüfen. Java Basics - Anfänger-Themen 4
F n-1 als Vielfaches von 20 überprüfen Java Basics - Anfänger-Themen 3
S Täglich auf Erinnerungen überprüfen Java Basics - Anfänger-Themen 5
S Eingabe auf Richtigkeit und Reihenfolg überprüfen Java Basics - Anfänger-Themen 3
L Eingabe überprüfen Java Basics - Anfänger-Themen 7
T Input/Output Int Eingabe auf Zahl überprüfen Java Basics - Anfänger-Themen 30
S Passwortchecker Sequenzen überprüfen Java Basics - Anfänger-Themen 4
L String überprüfen mit .equals .contains oder .matches? Java Basics - Anfänger-Themen 1
J Passwort überprüfen Java Basics - Anfänger-Themen 3
kilopack15 Array auf doppelte Elemente überprüfen Java Basics - Anfänger-Themen 16
C Stringbuffer auf Zeilenumbruch überprüfen Java Basics - Anfänger-Themen 14
T Auf Palindrom überprüfen Java Basics - Anfänger-Themen 10
H überprüfen ob in Array gleiche int-Zahlen gespeichert werden. Java Basics - Anfänger-Themen 7

Ähnliche Java Themen


Oben