Suggest a feature
×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Added: Dec 13, 2020 9:06 PM
Views: 5
Tags: array
  1. public class Main {
  2.     // TODO: 07.12.2020 Schreibe eine Methode generateLottoNumbers, die Lottozahlen erzeugt und als int-Array
  3.     //  zurückgibt; Parameter: die Anzahl der Zahlen, die Maximale Größe der Zahlen
  4.     //  ! Das Rückgabe Array soll geordnet sein (die kleinste zuerst) + keinen Doppelgänger!
  5.     public static void main(String[] args) {
  6.         int[] mynumbers = generateLottoNumbers(6, 49);
  7.         Arrays.sort(mynumbers);
  8.         System.out.println("Das sind Ihre Lottozahlen.");
  9.         System.out.println(Arrays.toString(mynumbers));
  10.         int[] winningNumbers = generateLottoNumbers(6, 49);
  11.         Arrays.sort(winningNumbers);
  12.         System.out.println("Die Lottozahlen für heute!");
  13.         System.out.println(Arrays.toString(winningNumbers));
  14.     }
  15.  
  16.  
  17.     public static int[] generateLottoNumbers(int anzahl, int maximaleZahl) {
  18.         var r = new Random();
  19.         var arr = new int[anzahl];
  20.         boolean isRepeated;
  21.         int randomNumber = 0;
  22.         int maxNum = maximaleZahl;
  23.         for (int indexDrawn = 0; indexDrawn < anzahl; indexDrawn++) {
  24.             do{
  25.                 isRepeated = false;
  26.                 // Zahl zwischen 1 und maximaleZahl
  27.                 randomNumber = r.nextInt(maxNum + 1 ) + 1;
  28.                 //Doppelgänger Test gegen die non-zero Elemente
  29.                 for (int i = 0; i < indexDrawn; i++) {
  30.                     // prüft gegen jenes nicht Null Element
  31.                     // man hofft, dass keine Nummer eine gleiche ist
  32.                     if(arr[i] == randomNumber){
  33.                         //Sobald eine Doppelgänger Zahl gefunden wurde, verlässt man die inner-for-loop
  34.                         // um dann in der äußeren wieder eine randomNumber zu generieren!
  35.                         isRepeated = true;
  36.                         break;
  37.                     }
  38.                 }
  39.                 //Während isRepeated falsch ist, dann wird der Test solange ausgeführt, bis er true ist
  40.             } while(isRepeated);
  41.             arr[indexDrawn] = randomNumber;
  42.         }
  43.         return arr;
  44.     }
  45. }
  46.