Zufällige Zahl ausgeben?
Hallo allerseits,
ich wollte ein Programm erstellen, in welchen ich 2 long Arrays habe, die mir jeweils beide 5 Zufallszahlen ausgeben zwischen 10 und 500. Leider habe ich irgendwas falsch. Was ist/sind mein/e Fehler? Es wäre super, wenn ihr mir auch Codevorschläge schreiben könnt :)
3 Antworten
Du hast in den Zeilen
x[i] = (long) = (Math.Random() *490) +10);
und
y[i] = (long) = (Math.Random() *490) +10);
jeweils ein "=" zu viel.
Ausserdem heisst die Methode mWn Math.random und nicht Math.Random. (Wir sind ja hier nicht bei C# ^^)
Ändere die beiden Zeilen wi folgt ab:
x[i] = (long)(Math.random() *490) +10);
und
y[i] = (long)(Math.random() *490) +10);
P.S.: Im Text sagst du es sind 5 Zahlen, im Code arbeitest du dann aber mit 6 Stück. Was davon ist denn nun korrekt?
Dann müsstest du noch die ganzen 6er durch 5er ersetzen und die Zeilen
System.out.println(x[5]);
und
System.out.println(y[5]);
entfernen.
Whoops, stimmt...Hatt ich übersehen, dass du die Laufvariable für die zweite Schleife anders benannt hast... ^^;;;;
Und ich habe es mal versucht, wie du es geschrieben hast, aber erwartet aber von mir, dass ich nach der Klammer ein Semikolon setze (Also +10;); bei beiden.
Ach verdammt! Ich hätts besser noch ein weiteres mal Probegelesen... Die Klammer hinter der 10 muss noch weg...
Noch eine letze Frage: Meine nächste Aufgabe ist es, dass z.B. y[0] und x[0] ausgegeben werden, sodass die Zufallszahl von y und x in einer println ausgegeben werden. Wie mache ich das? Ich habe die 5 y gelöscht und bei jeden x (+ y[x]) eingefügt, bekomme aber nur von x augegeben.
Klingt so, als suchtest du etwas in der Art:
for(int i = 0; i < 5; ++i){
System.out.print(x[i]);
System.out.print(" ");
System.out.println(y[i]);
}
Oder alternativ:
for(int i = 0; i < 5; ++i){
System.out.printf("%d %d\r\n", x[i], y[i]);
}
Na in dem Fall:
for(int i = 0; i < 5; ++i){
System.out.printf("{%d,%d},",x[i],y[i]);
}
System.out.println();
printf beduetet "Print Formatted". Dabei wird im String, der als erster Parameter übergeben wird für jeden Wert der ausgegeben werden soll eine Formatsequenz erwartet.
Im einfachsten Fall haben die Formatsequenzen das Format (^^): %Typ, wobei für Typ u.a. folgendes eingesetzt werden kann:
- d: eine (Dezimal-)Zahl ohne Nachkommastellen (int)
- f: eine (Dezimal-)Zahl mit Nachkommastellen (float)
- c: ein einzelnes Zeichen (char)
- s: ein String
Siehe auch: https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax und https://alvinalexander.com/programming/printf-format-cheat-sheet
a) Die beiden = nach (long) weg
b) Random klein schreiben
c) beide Imports weglassen
Müssen dir arrays nicht auch noch convertiert werden?
Meine mich zu erinnern, die werden sonst als Objekt ausgegeben.
Hau die Ausgabe auch in eine Schleife. Wozu der Aufwand, wenns einfacher geht^^
Schleifen sehen für mich noch ein wenig komliziert aus und damit ich nicht so viel kompliziertes habe, habe ich 2 for schleifen
Ich will 5 Zahlen am Ende haben :)