Hallo mal an alle!
Ich wäre echt dankbar, wenn mir jemand mal weiterhelfen könnte mit meinem Problem:
Ich hab einmal angefangen mit Java und ein Programm geschrieben, welches Komplexe Zahlen addiert und subtrahiert.
Naja alles gut und schön, nur wenn ichs mit einem EOF beenden will also mit STRG+D läuft das programm noch weiter, und erst wenn ichs zwangsweise bei dem cmd-Window mit STRG+C halt abbreche gibt er mir das richtige aus. Also kein fehler bei der berechnung oder so, nur beim beenden des Programmes. Ich poste hier mal meine entry-point klasse, weil der contruktor passt und das add und sub also zum + und - rechnen passt auch.
Danke schon im Voraus für eure hilfe!
Ich wäre echt dankbar, wenn mir jemand mal weiterhelfen könnte mit meinem Problem:
Ich hab einmal angefangen mit Java und ein Programm geschrieben, welches Komplexe Zahlen addiert und subtrahiert.
Naja alles gut und schön, nur wenn ichs mit einem EOF beenden will also mit STRG+D läuft das programm noch weiter, und erst wenn ichs zwangsweise bei dem cmd-Window mit STRG+C halt abbreche gibt er mir das richtige aus. Also kein fehler bei der berechnung oder so, nur beim beenden des Programmes. Ich poste hier mal meine entry-point klasse, weil der contruktor passt und das add und sub also zum + und - rechnen passt auch.
Danke schon im Voraus für eure hilfe!
Code:
public static void main(String[] args){ //Die Entry-Point Klasse Anfang
int hilfsreal = 0;
int hilfsimag = 0;
int counteingabe = 0;
String vorzeichen = "";
Boolean endinput = false;
Boolean falseinput = false;
Complex hilfskomplex = new Complex(0,0);
Complex komplexezahl = new Complex(0,0);
try {
vorzeichen = EprogIO.readWord();
if(!(vorzeichen.equals("+") || vorzeichen.equals("-")))falseinput=true;
}catch(EprogEOFException e){
falseinput=true;
}
do{ //Bis das ende der Eingabe erreicht ist (Strg+D);
try{
hilfsreal = EprogIO.readInt();
counteingabe++;
hilfsimag = EprogIO.readInt();
counteingabe++;
komplexezahl = new Complex(hilfsreal, hilfsimag);
if(vorzeichen.equals("+"))hilfskomplex.add(komplexezahl);
else{
if(counteingabe != 2)hilfskomplex.sub(komplexezahl);
else hilfskomplex.add(komplexezahl);
}
} catch(EprogDataTypeException e){
falseinput=true;
} catch(EprogEOFException e){
if((counteingabe % 2) != 0 || counteingabe == 0)falseinput=true;
endinput = true;
EprogIO.println("Ende der Eingabe");//Temporär hier
EprogIO.println(hilfskomplex.toString());//Temporär hier
}
} while(!endinput);
if(!falseinput)EprogIO.println(hilfskomplex.toString());
else EprogIO.println("?");
}