Hallo,
wie die Überschrift habe ich ein Problem mit einem Array (ich bin java Anfänger). Er hat eine fest vorgegebene Größe 8. Wenn die max Zahl eingegeben worden ist bricht er automatisch bei der achten Eingabe oder bei einer nicht Zahl Eingabe ab. Im Anschluß kommt eine Mitteilung wieviele Zahlen und welche eingelesen wurden. Soweit so gut. Bis dahin funktioniert alles das Progi meldet keine Fehler.
Nun will ich aber noch im Anschluß die einzelnen Eingaben überprüfen ob die einzelnen Zahlen sortiert eingegeben worden sind (boolean) oder nicht. Diese Ausgabe funktioniert aber nicht. Des Weitern wenn man 8 Zahlen eingibt gibt es die Fehlermeldung:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
at Test.main(Test.java:36)
Hier ist mal der Code:
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
java.util.Scanner s = new java.util.Scanner(System.in);
//Anfangsmeldung
System.out.print("\nBitte geben Sie Zahlen ein. " + "Sortiert oder unsortiert." +
"\nEingabeende erfolgt durch nicht numerische Eingabe oder nach der Eingabe der 8. Zahl." + "\n");
double[] Zahleneingabe = new double[8];
boolean istSortiert = true;
int index = 0;
//Haupteil
while (s.hasNextDouble()) {
Zahleneingabe[index] = s.nextDouble();
index++;
if (index >= 8) {
break;
}
}
//Auswerteteil
System.out.println("\nEs wurde(n) " + index + " Zahl(en) eingegeben.");
System.out.println("Die Zahlen die eingegeben wurden: " + Arrays.toString(Zahleneingabe));
// [B][COLOR=Black]Ab hier beginnt mein geschildertes Problem[/COLOR][/B]
if (Zahleneingabe[index - 1] > Zahleneingabe[index]) {
istSortiert = false;
}
if (istSortiert == true) {
System.out.println("Aufsteigend sortiert!");
} else {
System.out.println(" Nicht aufsteigend sortiert!");
}
}
}
Alles anzeigen
Würde mich freuen, wenn es da einen gibt der mich auf meinen Fehler, den ich nicht sehe aufmerksam macht.