Ein Array verwendet man, wenn z. B. sehr viele Variablen erstellt werden sollen. So eine Aufgabe könnte man z. B. haben, wenn man tausende von Artikelnummern mit fortlaufenden Nummern erstellen soll. Bis jetzt würden wir ja jede Variable einzeln erstellen, das wäre bei einigen tausend Variablen sehr viel Arbeit und würde den Code extrem groß machen. Mit einem Array geht so etwas, aber mit nur einem Befehl.
Ein Array ist folgendermaßen aufgebaut:
[] = new [] ;
Hier ein Beispiel, wie man ein Array mit 100 integer Werten anlegt.
int[] artikelnummern = new int [100] ;
Wichtig ist noch anzumerken, dass ein Array mit der Nr. 0 beginnt. Das Array „artikelnummern“ geht also von der Zahl 0 bis 99. Wenn ihr jetzt in das 15. Element den Wert 4 speichern möchtet, macht ihr das wie folgt:
artikelnummern[14]=4;
Wenn ihr jetzt das 15. Element von diesem Array wieder ausgeben wollt, macht ihr das mit diesem Befehl.
System.out.println (artikelnummern[14]);
Jetzt aber zu der eigentlichen Aufgabe, dem Programm, welches wir schreiben wollen. Jeder von euch will bestimmt einmal im Lotto gewinnen. Hier schreiben wir uns jetzt ein kleines Programm, mit dem wir Lotto spielen können, aber kein Geld dabei ausgeben. Das Dumme ist, wir gewinnen leider auch keine Millionen :).
Bei dem Programm fordert ihr den User zunächst auf, 6 Zahlen einzugeben. Wenn der Benutzer seine Zahlen eingegeben hat, zeigt ihr ihm diese noch einmal. Anschließend müsst ihr per Zufallsgenerator 6 Zahlen ziehen. Jetzt ist die Frage: Wie bekomme ich eine Zufallszahl heraus? Dazu könnt ihr diesen Codeschnipsel verwenden:
import java.util.Random; // Packege welches importiert werden muss
int aktuelleZahl=0;
Random mygenerator = new Random (); // Zufallsgenerator Anlegen
aktuelleZahl=mygenerator.nextInt(50);
So wurde eine Zufallszahl zwischen 0 und 49 gezogen, denn beim Lotto gehen die Zahlen ja bis 49. Ok die Zahl 0 gibt es im Lotto eigentlich nicht, aber das vernachlässigen wir erst einmal, damit das Programm einfacher ist. Außerdem ist es uns auch zunächst egal, ob eine Zahl 2 mal gezogen werden kann.
Jetzt wisst ihr ja, wie man zufällig eine Zahl per „Random“ herausbekommen kann. So müsst ihr jetzt 6 Zufallszahlen ziehen. Diese Zahlen gebt ihr wieder aus, sodass der Benutzer sehen kann, welche Zahlen gewonnen haben. Wenn der Spieler eine Zahl richtig getippt habt zeigt ihr dem Benutzer, mit welchen Zahlen er gewonnen hat.
Euer fertiges Programm sollte jetzt in etwa so aus sehen:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package lotto;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Random;
/**
*
* @author Andreas
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
try {
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
System.out.println("*******************");
System.out.println("*** Lottoking ***");
System.out.println("*******************");
int[] zufallsZahlen= new int [6] ;
int[] getippteZahlen= new int [6] ;
int g = 0;
for (int i = 0; i <=5; i++)
{
g++;
System.out.println("Bitte geben Sie die " +g+ ". Zahl ein");
getippteZahlen[i] = Integer.parseInt( input.readLine());
}
System.out.println("Sie haben folgende Zahlen getippt");
for (int i = 0; i <=5; i++)
{
System.out.println ( getippteZahlen[i] );
}
System.out.println("");
for (int i = 0; i <=5; i++)
{
//Zufallsgenerator Anlegen
Random mygenerator = new Random();
// Zufallszahl zwischen 0 und 49 (50 ist exklusive)
// Grenze) erzeugen und in aktuelle/ahl speichern
zufallsZahlen[i]=mygenerator.nextInt(50);
}
System.out.println("Die Gewinnzahlen lauten:");
for (int i = 0; i <=5; i++)
{
System.out.println ( zufallsZahlen[i] );
}
System.out.println("Sie haben mit folgenden Zahlen gewonnen:");
for(int i=0; i<=5; i++)
{
for(int j=0; j<=5; j++)
{
if (zufallsZahlen[i] == getippteZahlen[j])
System.out.println(getippteZahlen[j]);
}
}
}
catch(Exception ex)
{
System.out.println("Irgendwas ist schief gelaufen !!!");
System.out.println(ex.getMessage() );
}
// TODO code application logic here
}
}
- In der Zeile 9 importiert ihr das Package, welches ihr für das Random-Script benötigt.
- In der Zeile 28 legt ihr ein Array mit 6 Elementen für die Zufallszahlen an.
- In der Zeile 29 legt ihr das Array mit den 6 Elementen an, in welchem die Zahlen gespeichert werden, welche der User eingibt.
- In der Zeile 31 wird eine Laufvariable 6 mit dem Wert 0 erstellt.
- In der Zeile 33 erstellt ihr eine For-Schleife, welche 6 mal durchlaufen wird. In der For-Schleife zählen wir außerdem die Laufvariable i immer um die Zahl 1 hoch und beginnen mit dem Wert 0.
- In der Zeile 35 addieren wir immer die Zahl 1 auf den Inhalt der Laufvariablen g.
- In der Zeile 36 fordert ihr den Benutzer auf, seine Zahlen einzugeben.
- In der Zeile 37 lest ihr die Zahlen, die der User eingibt, in das Array getippteZahlen ein.
- In den Zeilen 39 bis 43 zeigen wir noch einmal an, welche Zahlen getippt wurden.
- In der Zeile 46 erstellen wir wieder eine For-Schleife, die 6 mal durchlaufen wird.
- In den Zeilen 47 bis 53 ziehen wir unsere 6 Zufallszahlen.
- In den Zeilen 57 bis 60 geben wir in einer For-Schleife die Zufallszahlen aus.
- In den Zeilen 63 bis 70 haben wir 2 For-Schleifen miteinander verschachtelt und darin noch eine If abfrage. Damit fragen wir ab, ob bei unseren getippten Zahlen mit den Zufallszahlen übereinstimmen. Wir machen das so, indem wir zunächst die erste Zufallszahl nehmen und sie mit allen 6 getippten Zahlen vergleichen. Danach nehmen wir die 2. Zufallszahl und vergleichen sie wieder mit allen 6 getippten Zahlen, und so geht es mit allen Zufallszahlen weiter, bis man alle verglichen hat.
Hier geht es zu den bisherigen Teilen der Artikelserie Java: