Zuerst entschuldige ich mich, wenn dies zuvor gefragt wurde und ich konnte es nicht finden. Ich habe die Tiefen des Internets auf der Suche nach Orientierung durchforstet, bin aber nicht erfolgreich gewesen.Generieren von Zufallszahlen in For-Schleife von externer Klasse
In meiner Programmierklasse II arbeiten wir daran, ein Programm für die Lotterie zu erstellen. Wir haben externe Klassen erstellt (im Klassenraum) und die Objekte verwendet, die in diesen Klassen in unserem Treiber erstellt wurden. Für diese Aufgabe erstellen wir ein Programm, das Lottozahlen ausgibt. Das Programm fragt den Benutzer, ob sie Pick 3, 4 oder 5 spielen, und soll dann für jeden "Ball" eine Zufallszahl ausgeben. In einer der separaten Klassen haben wir den Randomizer bereits importiert und instanziiert. Wenn ich jedoch das Array und die for-Schleife programmiere, während die richtige Anzahl von Ausdrucken erzeugt wird (3 Ausdrucke für 3, 4 Ausdrucke für 4 und 5 Ausdrucke für 5), wird keine neue Nummer für jede Schleife erzeugt. Stattdessen wird der erste Wert beibehalten und für jede Schleife danach ausgedruckt. Ich habe meinen Code unten eingefügt. Bitte helfen Sie!
import java.util.Scanner;
public class LotteryGame2 {
public static void main(String[] args){
//Declare and instantiate objects
PickGame2 pick = new PickGame2();
Scanner keyboard=new Scanner(System.in);
pick.activate();
//Ask for and obtain user input
System.out.print("Are you playing Pick 3, Pick 4, or Pick 5? Enter number here: ");
int numberOfGame=keyboard.nextInt();
PickGame2[] gamenumber=new PickGame2 [numberOfGame];
for (int i=0; i<gamenumber.length; ++i){
int ball=pick.pullBall();
System.out.println("Ball " + (i+1) + " is " + ball);
}//Ending bracket of for loop
//Close Scanner object
keyboard.close();
}//Ending bracket of main method
}//Ending bracket of class LotteryGame2
Die externen Klassen sind wie folgt:
private int ball;
private Random randomizer;
public LotteryContainer(){
this.ball=0;
this.randomizer=new Random();
}//Ending bracket of constructor
public void activate(){
this.ball=this.randomizer.nextInt(9) + 1;
}//Ending bracket of method activate
public int getBall(){
return this.ball;
}//Ending bracket of method getBall
und
private LotteryContainer machine;
public PickGame2(){
this.machine=new LotteryContainer();
}//Ending bracket of constructor
public void activate(){
this.machine.activate();
}//Ending bracket of method activate
public int pullBall(){
return this.machine.getBall();
}//Ending bracket of pullBall
Der Code, den Sie anzeigen, erstellt ein Array und iteriert es. Es gibt jedoch keine einzige Zuweisung zu einem der Array-Elemente. Fehlt dir etwas wie 'gamenumber [i] = ...'?! – GhostCat
externe Klassen: { \t \t private LotteryContainer Maschine; \t \t öffentliche PickGame2() { \t \t this.machine = new LotteryContainer(); \t} \t \t public void activate() { \t \t this.machine.activate(); \t} \t \t public int pullBall() { \t \t Rückkehr this.machine.getBall(); \t} \t } importieren java.util.Random; öffentliche Klasse LotteryContainer { \t \t private Int Ball; \t private Random Randomizer; \t \t public LotteryContainer() { \t \t this.ball = 0; \t \t this.randomizer = neu Random(); } \t \t \t public void Activate() { \t \t this.ball = this.randomizer.nextInt (9) + 1; \t} \t \t public int getBall() { \t \t Rückkehr this.ball;} – SMcGwier
@GhostCat, ich bin nicht sicher, was Sie meinen, wie es keine Zuweisungen haben. gamennumber hängt vollständig von den Benutzereingaben ab und dann, basierend auf dieser Eingabe, druckt die for-Schleife so viele Bälle aus, wie nötig sind. – SMcGwier