Lernpfad:Objektorientierte Programmierung mit Java/Arrays: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 47: Zeile 47:
</syntaxhighlight>
</syntaxhighlight>


Zugriffe mit Indizes außerhalb des gültigen Bereichs (also <code>i < 0</code> oder <code>i > length</code>) produzieren einen Fehler.
Zugriffe mit Indizes außerhalb des gültigen Bereichs (also <code>i < 0</code> oder <code>i > length</code>) produzieren einen [https://docs.oracle.com/javase/7/docs/api/java/lang/ArrayIndexOutOfBoundsException.html Fehler].


== Über ein Array iterieren ==
== Über ein Array iterieren ==
Zeile 56: Zeile 56:
// Das Attribut "length" eines Arrays enthält seine Größe
// Das Attribut "length" eines Arrays enthält seine Größe
for( int i = 0; i < zahlen.length; i += 1 ) {
for( int i = 0; i < zahlen.length; i += 1 ) {
System.out.println(zahlen[i]);
System.out.println(zahlen[i]);
}
}
</syntaxhighlight>
</syntaxhighlight>


{{Aufgabe:Start}}
{{Aufgabe:Start}}
# Erstelle eine Klasse <code>Zufall</code> mit einem Attribut <code>zufallszahlen</code>, dass ein Integer-Array speichert. Das Array soll im Konstruktor initialisiert werden, wobei die Größe des Arrays dem Konstruktor als Parameter übergeben wird.  
# Erstelle eine Klasse <code>Zufall</code> mit einem Attribut <code>zufallszahlen</code>, das ein Integer-Array speichert. Das Array soll im Konstruktor initialisiert werden, wobei die Größe des Arrays dem Konstruktor als Parameter übergeben wird.  
# Implementiere eine Methode <code>public void zahlenGenerieren()</code>, die das Array mit Zufallszahlen befüllt.  
# Implementiere eine Methode <code>public void zahlenGenerieren()</code>, die das Array mit Zufallszahlen zwischen 1 und 100 befüllt.  
# Implementiere eine Methode <code>public void ausgeben()</code>, die über das Array iteriert und die Elemente auf der Konsole ausgibt.  
# Implementiere eine Methode <code>public void ausgeben()</code>, die über das Array iteriert und die Elemente auf der Konsole ausgibt.  
# Implementiere eine Methode <code>public boolean suchen(int pZahl)</code>, die prüft, ob <code>pZahl</code> im Array enthalten ist.
# Implementiere eine Methode <code>public boolean suchen(int pZahl)</code>, die prüft, ob <code>pZahl</code> im Array enthalten ist.
{{Aufgabe:End}}
{{Aufgabe:End}}
{{Lösung:Start}}
<syntaxhighlight lang="java" line="1">
import java.util.Random;
public class Zufall {
    // Deklaration des Integer-Arrays
    private int[] zufallszahlen;
    /**
    * Konstruktor der Klasse Zufall.
    * @param pAnzahl Größe des Zufallszahlen-Speichers.
    */
    public Zufall( int pAnzahl ) {
        // Initialisierung des Integer-Arrays mit der
        // im Parameter übergebenen Größe.
        // Ist die Anzahl negativ wird sie durch
        // multiplikation mit -1 positiv gemacht.
        if( pAnzahl > 0 ) {
            zufallszahlen = new int[pAnzahl];
        } else {
            zufallszahlen = new int[pAnzahl * -1];
        }
    }
    /**
    * Befüllt den Speicher mit Zufallszahlen.
    * @see java.util.Random
    */
    public void zahlenGenerieren() {
        // Instanziieren der Random-Klasse.
        Random r = new Random();
        // Mit einer Zählvariablen i für den Index der
        // Array-Elemente über das Array iterieren.
        for( int i = 0; i < zufallszahlen.length; i++ ) {
            // Generieren einer Zufallszahl zwischen 0 und 100.
            // Da 100 nicht eingeschlossen wird, wird durch Addition
            // von 1 der Bereich von 1 bis 100 (inklusive) verschoben.
            zufallszahlen[i] = r.nextInt(100) + 1;
        }
    }
    /**
    * Gibt die Zufallszahlen im Speicher auf die Konsole aus.
    */
    public void ausgeben() {
        // Mit einer Zählvariablen i für den Index der
        // Array-Elemente über das Array iterieren.
        for( int i = 0; i < zufallszahlen.length; i++ ) {
            System.out.printf("Zufallszahl %d: %d\n", i, zufallszahlen[i]);
        }
    }
   
    /**
    * Sucht im Speicher nach einer Zahl und gibt zurück,
    * ob die Zahl vorhanden ist.
    * @param pZahl Die Zahl, nach der gesucht werden soll.
    * @return Wahr, wenn die Zahl gefunden wurde.
    */
    public boolean suchen( int pZahl ) {
        // Mit einer Zählvariablen i für den Index der
        // Array-Elemente über das Array iterieren.
        for( int i = 0; i < zufallszahlen.length; i++ ) {
            if( zufallszahlen[i] == pZahl ) {
                // Zahl gefunden
                return true;
            }
        }
        // Wenn der Algorithmus hier ankommt heißt das:
        // Zahl nicht gefunden
        return false;
    }
}
</syntaxhighlight>
{{Lösung:End}}