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.
Hallo, ich programmiere gerade mein erstes "richtiges" Programm. Es soll fürs Zahlen merken nutzbar sein.
Aufbau:
1. Nutzer gibt an, wie viele Zahlenblöcke in einer Reihe sein sollen und wie viele Reihen es geben soll.
2. Programm generiert Zufallszahlen über die Klasse Random in einer while-Schleife
3. Nutzer soll die gemerkten Zahlen eingeben. 4. Es soll geprüft werden, ob die eingegebenen Zahlen mit den generierten übereinstimmen.
Punkt 4 ist gerade mein Problem. Wie stelle ich es am besten an, die generierte Zahlenreihe aufzurufen um sie durch .equals() mit den eingetippten zu vergleichen. Sie vor der Klammer zu deklarieren, scheint in dem Fall ja nicht zu gehen (meiner Meinung nach...), oder?
Java:
package zahlenMerken;
import java.util.Random;
import java.util.Scanner;
public class zahlenMerken2 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Zweier-Zahlenblöcke in einer Reihe: ");
int zahlen = scan.nextInt();
System.out.println("\nAnzahl der Reihen: ");
int reihen = scan.nextInt();
System.out.println();
for (int i = 0; i < reihen; i++) {
int j = 0;
while (j < zahlen) {
Random zufallszahl1 = new Random();
int zz1 = zufallszahl1.nextInt(99)+1;
if (zz1 < 10) {
System.out.print("0"+zz1+" ");
} else {
System.out.print(zz1+" ");
}
j++;
}
System.out.println();
}
System.out.println("\nLösung eingeben: ");
int pruefen = scan.nextInt();
scan.close();
}
}
Danke schonmal! Ruhig auch andere grobe Schnitzer verbessern
Noch kommt nur ein Fehler, soweit bin ich noch nicht.
Das Random-Objekt habe ich jetzt vor der Schleife erzeugt, danke!
außerdem habe ich versucht meine Zufallszahlen in ein mehrdimensionales Array zu speichern, ich denke das hat auch einigermaßen geklappt:
Java:
Scanner scan = new Scanner(System.in);
System.out.println("Zweier-Zahlenblöcke in einer Reihe: ");
int zahlen = scan.nextInt();
System.out.println("\nAnzahl der Reihen: ");
int reihen = scan.nextInt();
System.out.println();
int[][] zufallsspeicher = new int [reihen][zahlen];
Random zufallszahl1 = new Random();
for (int i = 0; i < reihen; i++) {
for (int j = 0; j < zahlen; j++) {
zufallsspeicher[i][j] = zufallszahl1.nextInt(99)+1;
if (zufallsspeicher[i][j] < 10) {
System.out.print("0"+zufallsspeicher[i][j]+" ");
} else {
System.out.print(zufallsspeicher[i][j]+" ");
}
}
System.out.println();
}
System.out.println();
System.out.println("\nLösung eingeben: ");
int pruefen = scan.nextInt();
if (pruefen == zufallsspeicher[0][0]) {
System.out.print("richtig");
} else {
System.out.print("falsch");
}
scan.close();
Mein Problem ist im Moment, dass ich nicht weiß, wie ich dem Array sage, dass ich alle Felder prüfen möchte (also z.b. [Von 0 bis Reihen][Von 0 bis Zahlen]. Stattdessen kann ich immer nur einzelne Felder prüfen, z.B. [0][0]).
Arrays sind nur eine Art Regal an Variablen. Mehr können sie nicht. Du kannst auch nicht zwei Regalen sagen "vergleicht euch!" sondern das musst du machen. Und zwar Fach für Fach.