Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
package Proggen1_2;
import java.util.Arrays;
import java.util.Random;
public class S23_Methoden {
/**
* @param args
*/
/*
* parameterlose Methode, die ein Random Array
* mit 6 Werten zurück liefern soll
*/
public static int [] ziehung() {
int unsortiert [] = new int [6];
for ( int i = 0; i<6; i++){
unsortiert[i] = new Random().nextInt(49)+1;
for (int j = 0; j < i; j++) {
if (unsortiert[j] == unsortiert[i]) {
i--;
}
}
}
return unsortiert;
}
/*
* soll das Array sortiert zurückgeben, solange bis es
* fertig = 0 ist
*/
public static int naechste (int [] lotto, int letzte){
int vergleich = 50;
for ( int i = 0; i<lotto.length; i++) {
if (lotto[i] < vergleich && lotto[i] > letzte)
vergleich = lotto[i];
}
if (vergleich !=50)
return vergleich;
else return 0;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] ziehung = ziehung();
System.out.println("Array unsortiert: " + Arrays.toString(ziehung));
int übergabe = 0;
while ((übergabe=naechste(ziehung, übergabe))!=0) {
System.out.println(übergabe);
//System.out.println("Array sortiert: " + naechste(ziehung, übergabe));
}
}
}
Es geht darum die Methode ziehung() dazu zu bringen ein Array mit 6 Lottozahlen zu füllen und zurückzugeben. Über die Main soll dann die Methode naechste() aufgerufen werden, die das Array sortiert zurückgeben soll.
Ich bin selbst auf den Trichter gekommen die Methode ziehung zu schreiben. Probleme hatte ich aber bei der Methode naechste()., die ich dann aus der Lösung abgeschrieben habe
Könnte mir jemand eine andere Lösungsmöglichkeit zeigen wie man die Methode naechste erstellen könnte?
Mein Vorposter hat schon recht, die Methode nächste gibt kein array zurück, allerdings gibt sie die nächst größte zahl als das 2. argument zurück... somit dürfte die ausgabe richtig sortiert werden.
Falls es nicht explizit verboten ist, würde ich allerdings dennoch die Java-interne sortierung verwenden
Java:
System.out.println("Array unsortiert: " + Arrays.toString(ziehung));
Arrays.sort(ziehung); // veraendert das array ziehung. falls du das ergebnis spaeter noch brauchst, solltest du diese dir wo zwischenspeichern / neues array anlegen
System.out.println("Array sortiert: " + Arrays.toString(ziehung));
Schreiben Sie ein Programm, das die Methoden main, ziehung sowie naechste umfasst.
Die main-Methode soll zunächst die parameterlose Funktion ziehung
aufrufen, die als Rückgabewert ein array mit 6 Lottozahlen ohne Duplikate, aber unsortiert liefert.
Der Kopf dieser Funktion sollte die Gestalt
public static int[] ziehung()
besitzen.
Den Rückgabewert der Funktion könnte der Initialisierung eines arrays von Integer-Zahlen dienen,
z.B.: int[] unsortiert = ziehung();
Anschließend soll die main‐Methode die Lottozahlen in aufsteigender Reihenfolge anzeigen. Dabei
soll sie die Methode naechste aufrufen, der jeweils das array mit den 6 Lottozahlen sowie
die letzte ausgegebene Lottozahl als Parameter übergeben werden und die dann die nächstgrößere
Lottozahl in dem übergebenen array als Rückgabewert liefert.
Beim erstmaligen Aufruf kann main den Wert 0 als Parameterwert für die zuletzt ausgegebene
Lottozahl übergeben.
Sollte die Funktion naechste einmal keine nächstgrößere Lottozahl finden können, so soll sie den Wert 0
zurückgeben
Ich glaube mir Arrays.sort sollte hier nicht gearbeitet werden.
für mich scheint die aufgabenstellung zwar etwas seltsam, aber naja...
Nach der aufgabenstellung passt deine nächste-funktion eigentlich eh.
Eine kleinigkeit die ich anders machen würde - in der ziehung-schleife nicht jedes mal ein neues Random erzeugen. Speicher dir eine Random instanz (also ein new Random), und mach von dem selben objekt immer .nextInt(...). wird zwar nichts am verlauf ändern, ist aber schöner.
ansonsten hast du dich recht schön an die angabe gehalten, denke nich dass man da noch vieles anders machen kann / darf.