ArrayIndexOutOfBoundsException

TheRealMrTux

Mitglied
Ich habe hier ein kleines Programm, dass die größte zufällige Zahl eines Array heraussuchen soll.

Jetzt spuckt eclipse aber folgende Meldung aus:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at groeßtesElement.main(groeßtesElement.java:30)

Ich verstehe nicht, wieso mein Array zu lang sein soll, bzw finde den Fehler im Code nicht :bahnhof:

Java:
public class groeßtesElement {

	public static void main (String[] args) {

			int n = 5; //integer.parseInt(args[0]);
			int [] Array = new int [n];
			int Zaehler = 0;
			int Loesung = 0;
			
			for(int i = 0; i < n; i++){

				double ZZahl = (Math.random()*10);
				while(Zaehler < n){
					Array[Zaehler] =(int) ZZahl;
					Zaehler++;
				}
			}
			for(int i = 0; i<n; i++){ 
				if(Zaehler==n-1){
					if(Array[n]>Array[n-1]){
						if(Array[n]>Loesung){
							Loesung = Array[n];
							System.out.println(Loesung);
							break;
						}else{
							System.out.println(Loesung);
							break;
						}
					}
				}else if(Array[Zaehler]>Array[Zaehler+1]){
					if(Array[Zaehler]>Loesung){
						Loesung = Array[Zaehler];
					}
				}
				Zaehler++;
			}
			System.out.println(Loesung);
	}
	}


Würde mich echt freuen, wenn mir jemand den entscheidenden Stoß geben könnte. Ich bin nämlich grade etwas ratlos und am fast verzweifeln 😱
 
Zuletzt bearbeitet von einem Moderator:
Du betreibst ja extrem viel Aufwand, um an das grösste Element eines Arrays zu kommen, evtl. wird's deswegen unübersichtlich und man verhaspelt sich all zu leicht...
Java:
class groesstesElement {
  public static void main(String[] args) {
    int elements = 5;
    int[] array = new int[n];
    for(int n = 0; n < elements; n++) {
      array[n] = (int) (Math.random() * 10);
    }

    int max = Integer.MIN_VALUE;
    int maxIndex = -1;

    for(int n = 0; n < elements; n++) {
      if(max < array[n]) {
        max = array[n];
        maxIndex = n;
      }
    }
  }
}
 
@njans

Ach verdammt 😳
Vielen Dank! 😀

Java:
else if(Zaehler<n-1){
					if(Array[Zaehler]>Array[Zaehler+1])

Hier kommt jetzt immer 0 als Ergebnis ;(

@Spacerat
Ich bin auf die Idee das Problem so anzugehen gekommen, als ich die ersten paar Wikipediasätze über Bubblesort gelesen hab. :applaus:

Danke für deinen Quellcode, den pfeif ich mir jetzt als "Gutenachtlektüre" rein und hoffe dann auf schöne Träume! 😀
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben