Guten Tag allerseits,
Ich schreibe mir momentan ein Programm, indem eine Methode, die Klasse Random aufruft und eine Zufallszahl erzeugt. Diese Zufallszahl soll die Methode returnen, damit ich die in der Mainmethode verarbeiten kann. Nur leider gibt mir die Methode jedesmal die gleiche Zahl wieder, wenn ich sie aufrufe. Vielleicht kann mir jemand sagen, worin der Fehler liegt.
Schonmal vielen Dank im Vorraus.
MFG Erisiancorpse
Hier der Quellcode:
import java.lang.*;
import java.io.*;
import java.util.*;
public class Kopfrechentrainer
{
static public double Zufallszahlen(int Ziffern)
{
Random zufall = new Random();
double zufallszahl;
int intzufallszahl, lastnumber;
String numbermask = "9";
for(int loop = 1; true; loop++)
{
if(Ziffern == loop)
{
lastnumber = Integer.parseInt(numbermask);
break;
}
else numbermask = numbermask + "9";
}
while(true)
{
zufallszahl = (double) zufall.nextInt(lastnumber);
if(zufallszahl != 0)
{
break;
}
}
return zufallszahl;
}
public static void main(String[] args) throws IOException
{
BufferedReader tastatur = new BufferedReader(new InputStreamReader(System.in));
int Ziffern;
double Zufallszahl1, Zufallszahl2;
String eingabe;
System.out.println("Kopfrechentrainer");
System.out.println("------------------\n\n");
System.out.println("Erklaerung:\n");
System.out.println("Dieses Programm trainiert ihre Kopfrechenfaehigkeiten. Zuerst waehlen");
System.out.println("Sie aus, wieviele Stellen die gegebenen Zahlen maximal haben duerfen,");
System.out.println("danach wehlen Sie das Schwierigkeitslevel aus.");
System.out.println("Nun versuchen Sie die gegebenen Aufgaben im Kopf auszurechnen.");
System.out.println("Das Ergebnis tippen Sie dann bitte in das Loesungsfeld ein.");
System.out.println("Der Computer zeigt ihnen dann, ob ihr Ergebnis richtig war oder nicht.");
System.out.println("Viel Erfolg!\n\n\n\n");
System.out.println("Bitte geben Sie die maximal Anzahl von Ziffern ein:");
eingabe = tastatur.readLine();
Ziffern = Integer.parseInt(eingabe);
System.out.println(Zufallszahlen(Ziffern));
System.out.println(Zufallszahlen(Ziffern));
System.out.println(Zufallszahlen(Ziffern));
Zufallszahl1 = Zufallszahlen(Ziffern);
Zufallszahl2 = Zufallszahlen(Ziffern);
System.out.println(Zufallszahl1 + " + " + Zufallszahl2);
}
}
Ich schreibe mir momentan ein Programm, indem eine Methode, die Klasse Random aufruft und eine Zufallszahl erzeugt. Diese Zufallszahl soll die Methode returnen, damit ich die in der Mainmethode verarbeiten kann. Nur leider gibt mir die Methode jedesmal die gleiche Zahl wieder, wenn ich sie aufrufe. Vielleicht kann mir jemand sagen, worin der Fehler liegt.
Schonmal vielen Dank im Vorraus.
MFG Erisiancorpse
Hier der Quellcode:
import java.lang.*;
import java.io.*;
import java.util.*;
public class Kopfrechentrainer
{
static public double Zufallszahlen(int Ziffern)
{
Random zufall = new Random();
double zufallszahl;
int intzufallszahl, lastnumber;
String numbermask = "9";
for(int loop = 1; true; loop++)
{
if(Ziffern == loop)
{
lastnumber = Integer.parseInt(numbermask);
break;
}
else numbermask = numbermask + "9";
}
while(true)
{
zufallszahl = (double) zufall.nextInt(lastnumber);
if(zufallszahl != 0)
{
break;
}
}
return zufallszahl;
}
public static void main(String[] args) throws IOException
{
BufferedReader tastatur = new BufferedReader(new InputStreamReader(System.in));
int Ziffern;
double Zufallszahl1, Zufallszahl2;
String eingabe;
System.out.println("Kopfrechentrainer");
System.out.println("------------------\n\n");
System.out.println("Erklaerung:\n");
System.out.println("Dieses Programm trainiert ihre Kopfrechenfaehigkeiten. Zuerst waehlen");
System.out.println("Sie aus, wieviele Stellen die gegebenen Zahlen maximal haben duerfen,");
System.out.println("danach wehlen Sie das Schwierigkeitslevel aus.");
System.out.println("Nun versuchen Sie die gegebenen Aufgaben im Kopf auszurechnen.");
System.out.println("Das Ergebnis tippen Sie dann bitte in das Loesungsfeld ein.");
System.out.println("Der Computer zeigt ihnen dann, ob ihr Ergebnis richtig war oder nicht.");
System.out.println("Viel Erfolg!\n\n\n\n");
System.out.println("Bitte geben Sie die maximal Anzahl von Ziffern ein:");
eingabe = tastatur.readLine();
Ziffern = Integer.parseInt(eingabe);
System.out.println(Zufallszahlen(Ziffern));
System.out.println(Zufallszahlen(Ziffern));
System.out.println(Zufallszahlen(Ziffern));
Zufallszahl1 = Zufallszahlen(Ziffern);
Zufallszahl2 = Zufallszahlen(Ziffern);
System.out.println(Zufallszahl1 + " + " + Zufallszahl2);
}
}