Ich habe Schwierigkeiten mit einem Projekt, das eine Lotterie-Maschine erstellt, die 6 Zahlen zwischen 1 und 42 nach dem Zufallsprinzip druckt, wo keine 2 Zahlen gleich sind. Der Benutzer muss auch 6 Nummern eingeben. Wenn eine Nummer mit der zufällig vom Computer gewählten übereinstimmt, muss der Computer sie ausdrucken. Wenn nicht, druckt der Computer Sie sind ein solcher Verlierer. Nun, das Problem ist, ich bin mir nicht sicher, wie man sicherstellen kann, dass keine 2 zufällig ausgewählten Nummern gleich sind. Das Programm sollte auch nach einer anderen Nummer fragen, wenn eine Nummer kleiner als 1, größer als 42 oder gleich einer vorherigen Nummer eingefügt wird, und es scannen. (Benutzer kann nicht 2 identische Nummern eingeben) PS: Ich bin nur ein Anfänger, der die for-Schleife While-Schleife kennt und wenn ich so sagen würde, würde ich es lieben, wenn die Antworten sehr einfach und grundlegend wären. Bitte überprüfen Sie meinen Code und sagen Sie mir, ob etwas nicht funktioniert oder unlogisch ist. Vielen Dank im VorausErstellen einer Lotterie-Maschine
import java.util.Scanner;
import java.util.Random;
public class LotoMachine {
public static void main(String[] args) {
System.out.println("Please enter 6 numbers between 1 and 42.");
Scanner scan = new Scanner(System.in);
int[] marks = new int[6];
Random ran = new Random();
int[] x = new int[6];
boolean winner = false;
for (int i = 0; i < 6; i++) {
marks[i] = scan.nextInt();
}
for (int j = 0; j < 6; j++) {
x[j] = ran.nextInt(42) + 1;
for (int y = 0; y < j; y++) {
if (x[j] == x[y]) {
x[j] = ran.nextInt(42) + 1;
j=0;
}
}
}
for (int m = 0; m < 6; m++) {
System.out.println(x[m]);
}
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 6; j++) {
if (marks[i] == x[j]) {
winner = true;
System.out.println("Number(s) that matched: " + marks[i]);
}
}
}
if (winner != true) {
System.out.println("You are such a loser");
}
}
}
ist, was ich versuchte, aber ich bin mir nicht sicher, ob es für (int j = 0 arbeitet; j <6; j ++) { x [j] = ran.nextInt (42) + 1 ; für (int y = 0; y
Verwenden Sie eine while-Anweisung und erstellen Sie eine Zufallszahl, bis keine Übereinstimmung im Zufallszahlenfeld vorhanden ist. – brad
Mögliches Duplikat von [Erstellen von Zufallszahlen ohne Duplikate] (http: // stackoverflow.com/questions/4040001/creating-random-numbers-with-no-duplicates) –