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...
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...