Hallo Leute.
Ich bin totaler Java Neuling und muss fürs Studium ein Programm in Eclipse schreiben, das aus einer Adress- und Datensammlung Daten auswertet. Ich komme gerade an einem Punkt nicht weiter.
Ich habe einen try, catch Block für die Fehlerabfrage eingebaut. Wird ein unerlaubte Eingabe erkannt, so gibt er mir eine Fehlermedung heraus und beendet das Programm mit System.exit.
Ich möchte aber gerne, dass er dem Benutzer dann die Mögichkeit gibt, seine Eingabe wieder neu zu beginnen. Habe gelesen, dass man das mit einer while-Schleife machen kann. Ich habe keine Ahnung wo ich die hin setzten muss und was sie beinhalten muss. Kann mir da jemand weiterhelfen? Hier mein Codeausschnitt:
Ich habe die Berechnung des Durchschnittsalters in eine neue Methode gesteckt. Allerdings muss unten immer ein return-Wert eingetragen werden. Führe ich das Programm in Eclipse jetzt aus, so steht unter dem was ausgegeben werden soll noch die 0 vom return-Wert. Das soll aber nicht da stehen.
Kann mir jemand helfen?
Ich bin totaler Java Neuling und muss fürs Studium ein Programm in Eclipse schreiben, das aus einer Adress- und Datensammlung Daten auswertet. Ich komme gerade an einem Punkt nicht weiter.
Ich habe einen try, catch Block für die Fehlerabfrage eingebaut. Wird ein unerlaubte Eingabe erkannt, so gibt er mir eine Fehlermedung heraus und beendet das Programm mit System.exit.
Ich möchte aber gerne, dass er dem Benutzer dann die Mögichkeit gibt, seine Eingabe wieder neu zu beginnen. Habe gelesen, dass man das mit einer while-Schleife machen kann. Ich habe keine Ahnung wo ich die hin setzten muss und was sie beinhalten muss. Kann mir da jemand weiterhelfen? Hier mein Codeausschnitt:
Java:
public static int durchschnittsAlter() {
try {
int eingabe = IO.readInt("Bitte ein Geburtsjahr eingeben:");
DateiInput leser = new DateiInput("Werte zur Übung 6.3.csv");
String zeile = null;
ArrayList<Integer> durchschnittsalter = new ArrayList<Integer>();
while ((zeile = leser.leseZeile()) != null)
{
String[] adressFeld = zeile.split(";");
int geburtsJahr = Integer.parseInt(adressFeld[4]);
int alter = eingabe - geburtsJahr;
if (alter <= 0)
else {
durchschnittsalter.add(alter);
}
}
int durchschnitt = 0;
for (int a = 0; a < durchschnittsalter.size(); a++)
durchschnitt = durchschnitt + durchschnittsalter.get(a);
int mittelwert = durchschnitt / durchschnittsalter.size();
IO.println("Das Durchschnittsalter aller Personen bezogen auf Ihre Eingabe "
+ eingabe + " beträgt: " + mittelwert + " Jahre");
}
catch (IOException e) {
// Ausgabe einer Fehlermeldung und Ende bei Dateifehler
IO.println("Fehler beim lesen der Datei! "
+ e.getLocalizedMessage());
System.exit(1);
}
catch (NumberFormatException ex) {
// Ausgabe einer Fehlermeldung und Ende bei Dateifehler
IO.println("Fehler beim lesen der Datei!"
+ ex.getLocalizedMessage());
System.exit(1);
}
catch (InputMismatchException exy) {
// Ausgabe einer Fehlermeldung und Ende bei Dateifehler
IO.println("Nur ganze Zahlen eingeben");
System.exit(1);
}
catch (ArithmeticException exyz) {
// Ausgabe einer Fehlermeldung und Ende bei Dateifehler
IO.println("Alle Personen sind juenger als Ihr eingegebenes Geburtsjahr ");
System.exit(1);
}
return 0;
}
public static void main(String[] args) {
int ergebins = (int) durchschnittsAlter();
IO.println(ergebins);
}
Ich habe die Berechnung des Durchschnittsalters in eine neue Methode gesteckt. Allerdings muss unten immer ein return-Wert eingetragen werden. Führe ich das Programm in Eclipse jetzt aus, so steht unter dem was ausgegeben werden soll noch die 0 vom return-Wert. Das soll aber nicht da stehen.
Kann mir jemand helfen?