Hiho,
ich habe gerade ein Problem mit ner If then else Abfrage.
Es soll eine selbst geschriebene Fehlermeldung erscheinen, wenn das Array voll ist. Aber er haut immer den out of bound error raus. Ich hoffe das liegt nicht an meiner wilden Methodenübergabe. Habe die Stelle unterstrichen.
Vielen Dank im Voraus.
ich habe gerade ein Problem mit ner If then else Abfrage.
Es soll eine selbst geschriebene Fehlermeldung erscheinen, wenn das Array voll ist. Aber er haut immer den out of bound error raus. Ich hoffe das liegt nicht an meiner wilden Methodenübergabe. Habe die Stelle unterstrichen.
Vielen Dank im Voraus.
Java:
package uebung7;
public class Uebung7 {
public enum Studiengang {WINF , INF, MINF, MT, GET};
//Prüfungen zufällig bestanden/nicht bestanden.
public static void Pruefungen () {
int Menge = 0, AnzahlPruef = 0;
System.out.print("hat Prüfung: ");
for (int k = 0; k < 32; ++k)
{
Menge = Menge << 1;
Menge = Menge + (int)(Math.round(Math.random()));
}
for (int l = 0; l < 32; ++l)
{
if (Menge % 2 == 1)
{
System.out.print((32-l)+" ");
++AnzahlPruef;
}
Menge = Menge >>> 1;
}
System.out.print("bestanden \nund somit "+AnzahlPruef+" von 32 Prüfungen geschafft.\n");
}
// Vor- Nachnamen erstellen und den Studenten zufällig zuordnen.(Denkt euch nichts bei den Namen. Fand die cool. ^^)
public static void Namen (){
char [][] Vornamen = {{'S','u','s','a','n'},{'R','o','l','a','n','d'},{'E','d','d','i','e'},{'S','u','s','a','n','n','a','h'},
{'M','a','r','i','u','s'},{'R','o','s','a','l','i','n','d'},{'M','i','c','h','a','e','l'},{'C','u','t','h','b','e','r','t'},
{'L','i','s','a'},{'E','z','i','o'}};
char [][] Nachnamen = {{'D','e','l','g','a','d','o'},{'D','e','s','c','h','a','i','n'},{'D','e','a','n'},{'H','o','l','m','e','s'},
{'A','u','d','i','t','o','r','e'},{'M','o','r','t'},{'I','p','m','a','n'},{'S','i','n','c','l','a','i','r'},
{'F','l','a','k'},{'C','a','r','t','m','a','n'}};
{
int n = (int) (100*Math.random()%10);
int m = (int) (100*Math.random()%10);
System.out.print(Vornamen[n]);
System.out.print(" ");
System.out.println(Nachnamen[m]);
}
}
//public static void Alter(int studentenarray[]){
//int i=1, max=0, min=0;
//float sum=0;
// int n=studentenarray[5];
// sum=sum+n;
// if (i==1)
// {
// max=n;
// min=n;
// }
// if (n>max) max=n;
// if (n<min) min=n;
// ++i;
//}
public static void Studenteninit (int [][] stud, int counter,int i){
Studiengang a = Studiengang.WINF;
//Zufallswerte zuordnen, Schleife über s Studs.
for ( i=0 ; i!=counter;++i){
stud[i][0] = (int) (10000+9583*Math.random()); //5-stellige Zahlen
stud[i][1] = (int) (1980+10*Math.random()); // geb. ab 1980
stud[i][2] = (int) (1+100*Math.random()%12); //Werte 1...12
stud[i][3] = (int) (1+100*Math.random()%30); // Werte 1..30
stud[i][5] = (int) ((2011*365+11*30+07)-(stud[i][1]*365+stud[i][2]*30+stud[i][3]))/365; // Alter mit Array berechen
// Studiengang zufällig zuordnen.
int t =(int) (Math.random()*5);
switch(t){
case 0 : a = Studiengang.WINF; stud[i][4] = 2;
break;
case 1 : a = Studiengang.INF; stud[i][4] = 2;
break;
case 2 : a = Studiengang.MINF; stud[i][4] = 2;
break;
case 3 : a = Studiengang.MT; stud[i][4] = 1;
break;
case 4 : a = Studiengang.GET; stud[i][4] = 1;
}
}
System.out.println("\nStudiengang: "+ a);
}
public static void NeuerStud(int Anzahl, int [][] stud,int counter){
int Arraypruef =0;
for (int i=25; i!=Anzahl+25; ++i ){
[U] if (Arraypruef!=25)[/U]
{
Studenteninit(stud,counter,25);
System.out.println("Matr: " + stud[i][0]);
System.out.println("Geb: " + stud[i][3] + "."+ stud[i][2]+"."+stud[i][1]);
System.out.println("FB: "+stud[i][4]);
System.out.println("Alter: "+stud[i][5]);
Namen();
Pruefungen();
++Arraypruef;
}
else System.out.println("Es wurde ein Student zuviel im Array angelegt!");
}
}
public static void main(String[] args) {
int [][] stud = new int [50][6];
int counter;
for (int i = 0; i<25;++i){
Studenteninit (stud,25,0);
System.out.println("Matr: " + stud[i][0]);
System.out.println("Geb: " + stud[i][3] + "."+ stud[i][2]+"."+stud[i][1]);
System.out.println("FB: "+stud[i][4]);
System.out.println("Alter: "+stud[i][5]);
Namen();
Pruefungen();
}
NeuerStud(26,stud,51); // Anzahl ändern : 1.Wert (1-25), 3. Wert (26-50)jeweils um einen erhöhen.
}
// Alter();
// System.out.println("\n\nÄltester: "+max +"\tJüngster: "+min +"\tDurchschnittsalter: "+sum/50);
}