Hallo liebe Forengemeinschaft 
Ich bin seit ein paar Tagen dabei, Java zu lernen und hänge gerade an einem Problem, bei dem ihr mir sicher helfen könnt.
Ich habe als Aufgabenstellung: Füllen Sie ein eindimensionales array mit 10 Zahlen. Geben Sie diese Zahlen in umgekehrter Reihenfolge aus. Bis hierhin klappt auch alles.
Dann kommt die Zusatzaufgabe, Sortieren Sie die Zahlen der Größe nach und geben Sie die sortierten Zahlen erneut aus. Hier kommt leider nicht das erwartete Ergebnis raus. Er scheint eine Zahl zu tauschen, aber dann bricht er ab mit der Fehlermeldung: IndexOutofBoundsException: 10 in Zeile 31. Zeile 31 lautet
.
Mir ist klar, das ich ausserhalb der Menge des arrays bin..aber ich weiß nicht wie ich drin bleibe
Vielleicht kann mir ja jemand von euch sagen, wo mein Fehler im Code ist.
Vielen Dank für die Hilfe.
Grüße
dt-schulte
Ich bin seit ein paar Tagen dabei, Java zu lernen und hänge gerade an einem Problem, bei dem ihr mir sicher helfen könnt.
Ich habe als Aufgabenstellung: Füllen Sie ein eindimensionales array mit 10 Zahlen. Geben Sie diese Zahlen in umgekehrter Reihenfolge aus. Bis hierhin klappt auch alles.
Dann kommt die Zusatzaufgabe, Sortieren Sie die Zahlen der Größe nach und geben Sie die sortierten Zahlen erneut aus. Hier kommt leider nicht das erwartete Ergebnis raus. Er scheint eine Zahl zu tauschen, aber dann bricht er ab mit der Fehlermeldung: IndexOutofBoundsException: 10 in Zeile 31. Zeile 31 lautet
Java:
if (matrix[i]>matrix[i+1]) {
Mir ist klar, das ich ausserhalb der Menge des arrays bin..aber ich weiß nicht wie ich drin bleibe
Vielleicht kann mir ja jemand von euch sagen, wo mein Fehler im Code ist.
Java:
import java.io.*;
import javagently.*;
class zahlenfeld
{
public static void main(String args[])
throws IOException
{
int i,j=1;
int matrix[] = new int [10];
int zwischenspeicher;
BufferedReader in=
new BufferedReader (
new InputStreamReader(System.in));
System.out.println("Bitte geben Sie 10 Zahlen ein");
// Beginnen das array zu füllen
for (i = 0;i<matrix.length ;i++ ) {
System.out.println("Bitte geben Sie die " +j+" te Zahl ein");
matrix [i] = javagently.Text.readInt(in);
j++;
} // end of for
j--;
//Ausgabe in umgekehrter Reihenfolge
for(i = matrix.length-1;i>=0;i--) {
System.out.println("\n Die Zahl in Feld: "+j+" lautet: "+matrix[i]+ "\n");
j--;
} // end of for
// Sortieren nach Zahlengröße mit anschließender Ausgabe
for (i=0;i<=matrix.length ;i++ ) {
if (matrix[i]>matrix[i+1]) {
zwischenspeicher = matrix[i+1];
matrix[i+1] = matrix[i];
matrix [i] = zwischenspeicher;
} // end of if
System.out.println(matrix[i]);
} // end of for
}
}
Vielen Dank für die Hilfe.
Grüße
dt-schulte