6 Dezember, 2012
von Pascal
Keine Kommentare
Array auf doppelte Einträge überprüfen – Rekursion (Rekursive Methode)
Wenn man Zufallszahlen generieren und in ein Array schreiben möchte, aber dabei prüfen möchte, dass keine doppelten Einträge entstehen, der kann dies in Form einer Rekursion (Rekursive Methode) realisieren.
Im nachfolgenden Code, wird zunächst ein Array von der Größe 10 initialisiert. Danach soll die for-Schleife 10x durchlaufen werden, wobei die Prozedur “FillNextItem(myArray, i)”, mit dem Array und dem Arrayindex als Parameter jeweils aufgerufen wird.
Wurde die “FillNextItem()”-Prozedur aufgerufen, wird eine Zufallszahl zwischen 1 und 11 (also 10 Zufallszahlen) erzeugt und mit der Funktion “FindContains(int[] myArray, int rndCound)” geprüft, ob der Arraywert mit der Zufallszahl übereinstimmt. Um durch das Array schrittweise durchlaufen zu können, nutzen wir hier die foreach-Schleife.
Ist nun der Wert im Array mit dem der Zufallszahl gleich, wird ein True zurück gegeben und die Funktion wird erneut aufgerufen (Rekursion). Ist die Zufallszahl mit dem Wert im Array nicht gleich, wird ein false zurück gegeben und die Zufallszahl in den entsprechende Arrayindex geschrieben.
Das Ganze passiert so lange, bis die for-Schleife 10x durchlaufen- und das Array ohne doppelte Einträge gefüllt wurde.
Der entsprechende Code sieht wie folgt aus:
Weiterlesen →