Variablenfelder (1)
Manchmal benötigt man eine Reihe von Variablen mit ähnlicher
Funktion:
int anzahl0, anzahl1, anzahl2, anzahl3, anzahl4,
anzahl5, anzahl6;
Statt wie gezeigt reihenweise ähnliche Variablennamen zu kreieren,
fordert man dann besser den Speicherplatz für ein
Array an:
int[] zahl = new int[7];
Der entscheidende Vorteil eines solchen Arrays: Der Variablenname kann über Formeln errechnet werden. Hier ein Beispiel. Das Programm testet einen Würfel. Es erzeugt 10 Zufallszahlen zwischen 1 und 6 und wertet statistisch aus, wie oft jede Augenzahl fällt.
class Würfeltest {
public static void main(String[] args) {
System.out.println("Würfeltest");
int versuche = 10;
// Anzahl der Versuche
int[] anzahl = new int[7];
anzahl[1]=0;
// Angelegt werden 6 Speicherplätze für
anzahl[2]=0;
// Integerzahlen: anzahl[0], anzahl[1], ...
anzahl[3]=0;
anzahl[4]=0;
anzahl[5]=0;
anzahl[6]=0;
// for (int n=1; n<7; n++) anzahl[n]=0;
for (int wurf=0; wurf<versuche; wurf++) {
int augen = (int) (Math.random()*6+1);
if (augen==1) anzahl[1]++;
// Bei einer 1 wird anzahl[0] erhöht, ...
if (augen==2) anzahl[2]++;
// bei einer 6 wird anzahl[5] erhöht.
if (augen==3) anzahl[3]++;
if (augen==4) anzahl[4]++;
if (augen==5) anzahl[5]++;
if (augen==6) anzahl[6]++;
// anzahl[augen]++;
}
System.out.println("Anzahl 1: "+anzahl[1]);
// Die Statistik wird ausgegeben.
System.out.println("Anzahl 2: "+anzahl[2]);
System.out.println("Anzahl 3: "+anzahl[3]);
System.out.println("Anzahl 4: "+anzahl[4]);
System.out.println("Anzahl 5: "+anzahl[5]);
System.out.println("Anzahl 6: "+anzahl[6]);
// for (int n=1; n<7; n++) System.out.println("Anzahl "+n+":
"+anzahl[n]);
}
}
Unter Blöcken mit jeweils 6 fast identischer Anweisungen erkennen Sie eine auskommentierte (durch einen Kommentar unwirksam gemachte) For-Schleife. Löschen Sie jeweils den Block mit den 6 Anweisungen und aktivieren Sie die Schleife, indem Sie die Kommantarzeichen entfernen. Das Programm wird dramatisch kürzer, leistet aber genau das Gleiche wie vorher.
Aufgaben: