Zahlen in Array ersetzen (Java)

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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?

chezzus 
Fragesteller
 30.05.2012, 13:49

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 ?

0
MarkGreene  30.05.2012, 17:12
@chezzus

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.

0
chezzus 
Fragesteller
 30.05.2012, 20:51
@MarkGreene

Jop hat alles geklappt. Vielen Dank für deine Hilfe ;)

0

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};

chezzus 
Fragesteller
 29.05.2012, 15:54

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};
0

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.