D
das p
Gast
sers!
bin grad dabei ein lotto zu programmieren. ohne großen schnickschnack einfach 6 zahlen - fertig
nachdem ich die letzte, also sechste zahl eingegeben habe, kommt eine fehlermeldung:
mein quelltext sieht so aus:
meine ausgabe (vor der fehlermeldung) so:
kann mir jemand helfen?
vielen dank!
bin grad dabei ein lotto zu programmieren. ohne großen schnickschnack einfach 6 zahlen - fertig
nachdem ich die letzte, also sechste zahl eingegeben habe, kommt eine fehlermeldung:
Code:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
at startUp.LottoTest2.auswerten(LottoTest2.java:57)
at startUp.LottoTest2.main(LottoTest2.java:71)
mein quelltext sieht so aus:
Code:
package startUp;
import java.io.*;
public class LottoTest2 {
int [] Zahlen = new int[6];
int [] rzahl = new int[6];
int richtige, j, i, a;
static int richtigezahlen=0;
double flag, Zahl;
/* Zahlen generieren */
public void zahlengenerieren(){
for(i=1; i<=6; i++){
Zahl = (Math.random()* 48)+1;
}
}
/* Schaut nach doppelten Zahlen */
public void doppelteZahlen(){
for(i=1; i<=6; i++){
for(j=1; j<=6; j++){
if(Zahlen[i] == Zahlen[j]){ /** Wenn es doppelte Zahlen gibt */
Zahl = (Math.random()* 48) +1; /** gegeriere eine neue */
Zahlen[j] = (int) Math.round(Zahlen[i]); /** und überschreibe die alte */
doppelteZahlen(); /** durchlauf nochmal (um wieder doppelte auszuschließen)*/
}
}
}
}
/* Eingabe in die Konsole */
public void eingabe() throws IOException{ /** Fehlerausgabe */
for(a=1; a<=6; a++){ /** Eingabezahlen von 1 bis 6 */
System.out.println("" + a +"te Zahl eingeben"); /** Aufforderung zur Eingabe */
InputStreamReader eingabe = new InputStreamReader (System.in);
BufferedReader peingabe = new BufferedReader (eingabe);
flag =Integer.parseInt(peingabe.readLine()); /** Überprüft Eingabe der Zahlen */
if(flag>49 || flag<1){ /** " */
System.out.println("Ungültige Zahl! Es gelten nur Zahlen zwischen 1 und 49.");
a--;
}
}
}
/*Auswerten wieviel Richtige */
public void auswerten(){
for(int i=0; i<=6; i++){
for(int j=0; j<=6; j++){
if(Zahlen[i] == Zahlen[j]){ /** Generierte Zahlen mit Eingegebenen vergleichen */
richtigezahlen++; /** wenn identisch +1 */
}
}
}
}
/* Programm ausführen */
public static void main(String[] args)throws IOException{
LottoTest2 lotto = new LottoTest2(); /** Objekte erstellen */
lotto.eingabe();
lotto.zahlengenerieren();
lotto.auswerten();
/*
* lotto.doppelteZahlen();
*/
System.out.println("Die Lottozahlen sind: ");
for(int i = 0; i<6; i++){
System.out.println(lotto.Zahlen[i]+ " "); /** Generierte Zahlen werden ausgegeben */
System.out.println(richtigezahlen +" Zahlen erraten"); /** Richtige Zahlen werden ausgegeben */
}
}
}
meine ausgabe (vor der fehlermeldung) so:
Code:
1te Zahl eingeben
1
2te Zahl eingeben
2
3te Zahl eingeben
3
4te Zahl eingeben
4
5te Zahl eingeben
5
6te Zahl eingeben
6
kann mir jemand helfen?
vielen dank!