Zahlen in Array ersetzen (Java)
Hi Leute hab folgendes Problem :
Ich muss in Info ein Programm schreiben, dass ein Array mit 6 Zufallszahlen erzeugt und dieses ausgibt. Bis dorthin klappt alles. Nun muss ich ein zweites Array ausgeben welches die 6 Zufallszahlen aus dem ersten Array ebenfalls ausgibt, und alle Zahlen über 23 durch eine Null ersetzt. Hab keine Ahnung wie ich da vorgehen soll hoffe ich könnt mir helfen.
3 Antworten
Ich habe jetzt mal deinen Code den du unten als Kommentar gepostet hast, ausprobiert und da enthält das Array lottozahlen bei jedem Durchlauf andere Werte und nicht immer 1-5
Ich hab den Code so gelassen wie er war, nur die Ausgabe des Array am Ende der main-Methode wie folgt hinzugefügt:
for(int i = 0;i<lottozahlen.length;i++)
System.out.println(lottozahlen[i]);
Schau mal, ob dein Fehler da bei der Ausgabe liegt, denn sonst stimmt der Code soweit.
Was hast du denn sonst für das Kopieren des Arrays und die veränderte Ausgabe des zweiten Arrays bis jetzt?
Ja, das sollte so gehen.
Musst du jetzt die Werte im Array selbst ändern oder sollen sie nur anders ausgegeben werden, d.h. die Originalwerte bleiben im Array erhalten?
Wenn die Methode nur die Werte ändern soll, dann schreibst du eine Methode die das Array übergeben bekommt, durchläufst das Array in einer for-Schleife, überprüfst per if-Bedingung ob die Zahl größer als 23 ist, ersetzt sie dann durch eine 0 und wenn nicht, dann machst du einfach nichts.
Wenn die Werte nur ausgegeben werden soll, dann brauchst du eine if-else-Konstruktion in der for-Schleife.
Probier es einfach mal, wenn es dann immer noch nicht funktioniert wie es sollte, dann stell einfach deinen Code rein, dann berichtige ich ihn dir.
Jop hat alles geklappt. Vielen Dank für deine Hilfe ;)
Ich bin kein JAVA-Programmierer, aber du musst das halt über bedingungen handhaben.
Also erstmal übergibst du das komplette Array an das andere Array und dann einfach alles ab 23 wegschneiden.
if(Array[i] > 23) { Array[i] = NULL};
Erstmal danke für deine Antwort hab jetzt aber gleich das nächste Problem und zwar gibt Java in dem ersten Array immer die Zahlen 1-5 aus anstatt immer neue Zufallszahlen zu generieren eine Idee wieso ?
Ich schreib hier einfach mal das Programm bis dahin rein.
public class Lotto {
//Methode
public static int Zufall(int pMax) { return (int) ((Math.random()*pMax)+1); }
public static void main(String[] args) {
//Deklaration der Variabeln
int a,b,c,d,e,f ;
//Initalisierung
a= Zufall(49) ;
b= Zufall(49) ;
c= Zufall(49) ;
d= Zufall(49) ;
e= Zufall(49) ;
f= Zufall(49) ;
//Array1 erstellen
int [] lottozahlen = {a,b,c,d,e,f};
Wenn du nur bei der Ausgabe alles > 23 durch Null ersetzen sollst, muss du doch nur eine if-Abfrage an dieser Stelle machen die prüft, ob der aktuelle Array-Wert größer als 23 ist. Wenn ja, dann gibst du eine Null aus, wenn nicht, gibst du den Array-Wert aus.
Also das Problem mit dem ersten Array hat sich gelöst hatte wohl irgendwo ungewollte Kommentarstriche.
Beim zweiten Array würde ich gerne einfach if else benutzen um die Zahlen über 23 durch eine Null zu ersetzen allerdings (hab grad nochmal den Arbeitsauftrag angeguckt) will mein Lehrer, dass ich dafür ne neue Methode mach die ich dann später aufrufen soll. Kann ich denn in eine Methode ganz normal ne if else Funktion reinschreiben oder wie müsste das dann aussehen ?