Hallo Leute,
dies ist mein erster Eintrag in diesem Forum also tut es mir leid wenn ich das hier falsch poste oder so.
Ich soll eine Programm schreiben das mit System.in.read Daten einliest(Integer Werte) und diese in einen Array speichert. Dies muss solange getan werden, bis von meiner Methode die das einlesen übernimmt ein Integer.MIN_VALUE zurückkommt(Dies kommt zurück sobald die Eingabe kein Int Wert ist).
Deshalb muss ich den Array immer vergrößern. Mir ist klar das man Arrays nicht mehr ändern kann also wieviele es gibt, aber wir sollen einen neuen Array machen der um +1 größer ist. Nun funktioniert alles soweit, sobald ich ein X oder so eingebe sollte er stoppen aber er will meine Schleife wieder beginnen und fragt offenbar wenn ich es richtig verstehe nach einem Array welchen es gar nicht gibt.
Hier der Quellcode:
Hier noch der Quellcode von der readInt, damit sollte es nichts zu tun haben, habe diese Methode schon öfter in anderen Programmen benutzt aber vielleicht liegst auch daran.
Die Methode readInt greift auch noch auf readString zu(gibt mein Lehrer vor):
Tut mir leid wenn das jetzt etwas lang ist ich denke die unteren beide Quellcodes sind sowieso nicht wichtig für die Funktionalität des Programms.
Danke für eure Hilfe.
LG Acrypter
dies ist mein erster Eintrag in diesem Forum also tut es mir leid wenn ich das hier falsch poste oder so.
Ich soll eine Programm schreiben das mit System.in.read Daten einliest(Integer Werte) und diese in einen Array speichert. Dies muss solange getan werden, bis von meiner Methode die das einlesen übernimmt ein Integer.MIN_VALUE zurückkommt(Dies kommt zurück sobald die Eingabe kein Int Wert ist).
Deshalb muss ich den Array immer vergrößern. Mir ist klar das man Arrays nicht mehr ändern kann also wieviele es gibt, aber wir sollen einen neuen Array machen der um +1 größer ist. Nun funktioniert alles soweit, sobald ich ein X oder so eingebe sollte er stoppen aber er will meine Schleife wieder beginnen und fragt offenbar wenn ich es richtig verstehe nach einem Array welchen es gar nicht gibt.
Hier der Quellcode:
Java:
public static void rechnen() {
int rechenarray[] = new int [1];
for(int i = 0;rechenarray[i]!=Integer.MIN_VALUE;i++) {
rechenarray[i] = Input.readInt("");
if(rechenarray[i]!=Integer.MIN_VALUE)
rechenarray = Arrays.copyOf(rechenarray, (rechenarray.length+1));
}
}
Hier noch der Quellcode von der readInt, damit sollte es nichts zu tun haben, habe diese Methode schon öfter in anderen Programmen benutzt aber vielleicht liegst auch daran.
Java:
public static int readInt(String s) {
int umgewandelt = 0;
try {
umgewandelt = Integer.parseInt(readString(s));
}catch(NumberFormatException nfe) {
return Integer.MIN_VALUE;
}
return umgewandelt;
}
Die Methode readInt greift auch noch auf readString zu(gibt mein Lehrer vor):
Java:
public static String readString() {
String all = "";
char eingabe = ' ';
try{
do {
eingabe = (char)System.in.read();
if(eingabe !=10 && eingabe != 13) {
all = all + eingabe;
}
}while(eingabe !=10 && eingabe != 13);
}catch(NumberFormatException nfe) {
System.out.println("A NumberFormatException has been thrown.");
}catch(IOException io) {
System.out.println("An IOException has been thrown.");
}
return all;
}
Tut mir leid wenn das jetzt etwas lang ist ich denke die unteren beide Quellcodes sind sowieso nicht wichtig für die Funktionalität des Programms.
Danke für eure Hilfe.
LG Acrypter