Zufallszahlen in Java mit der Klasse Random
Tutorial zum Erstellen von zufälligen Werten in Java mit Hilfe der Klasse Random, und wie man sie in IntelliJ einbindet.Tags: Datentypen und Datenstrukturen | Java | Klassen | Methoden | Programmieren lernen | Variablen | ZufallszahlWorum geht´s?
In diesem Java Tutorial werden wir uns mit der Klasse Random beschäftigen, und wie wir mit ihr Zufallszahlen bzw. auch andere Zufalls-Werte bestimmen können.
1. Einen Zufallszahlen-Generator in Java anlegen
Die Klasse Random ist eine in Java schon vorgefertigte Klasse, die wir einfach nur noch einfügen und benützen müssen.
Dabei gehen wir fast so vor, als würden wir eine String-Variable erstellen, nur schreiben wir statt dem Datentyp String eben den Namen unserer Klasse („Random“) und rechts vom =-Zeichen schreiben wir new Random():
public class HelloWorld { public static void main(String[] args) { Random r = new Random(); } }
Leider zeigt IntelliJ nun 2 Fehler an – er erkennt die Random-Klasse nämlich noch nicht, weil sie nicht im selben Ordner liegt wie unsere HelloWorld-Klasse.
Um sie einzufügen, müssen wir über der Klasse mit Hilfe des import-Befehls die richtige Klasse einfügen:
import java.util.Random; public class HelloWorld { public static void main(String[] args) { Random r = new Random(); } }
Um das Ganze ein wenig zu vereinfachen, kannst du in IntelliJ auch mit der Maus auf eine Klasse klicken, die noch nicht erkannt wurde, und dann ALT+ENTER drücken. Wenn es eine der oft verwendeten Standard-Klassen ist, findet IntelliJ automatisch heraus welche du meinst, und fügt sie für dich ein.
2. In Java eine Zufallszahl erstellen lassen
Sobald der Generator angelegt wurde, können wir ihn nutzen, um Zufallszahlen zu erstellen:
import java.util.Random; public class HelloWorld { public static void main(String[] args) { Random r = new Random(); int zahl = r.nextInt(10); System.out.println(zahl); } }
Mit dem obigen Code wird z.B. eine zufällige Zahl zwischen 0 und 9 erzeugt und in der Konsole ausgegeben.
Die Methode .nextInt() geht dabei von 0 bis zur angegebenen Obergrenze minus 1. Wollen wir eine Zahl von 0-10 auswählen, müssen wir also .nextInt(11) verwenden.
Wollen wir eine Zufallszahl von 1-10 haben, können wir das auch so lösen:
import java.util.Random; public class HelloWorld { public static void main(String[] args) { Random r = new Random(); int zahl = r.nextInt(10) + 1; System.out.println(zahl); } }
Du kannst den selben Zufallsgenerator übrigens auch nutzen, um mehrere Zufallszahlen hintereinander zu erzeugen. Du musst also nicht jedes Mal eine neue Random-Variable anlegen, um eine neue Zufallszahl zu erhalten 😉
3. Eine Zufallszahl zwischen Minimal- und Maximal-Wert
Wollen wir zum Beispiel eine Zufallszahl zwischen 40 und 100 erstellen lassen, so müssen wir den Unterschied zwischen Ober- und Untergrenze (in diesem Fall 100 – 40 = 60) plus 1 in unsere .nextInt()-Funktion schreiben (in unserem Fall also 61), und die vom Zufallszahlen-Generator generierte Zahl plus den Minimal-Wert (in unserem Fall 40) rechnen:
import java.util.Random; public class HelloWorld { public static void main(String[] args) { Random r = new Random(); // erstelle zahl zwischen 40 und 100 int zahl = r.nextInt(61) + 40; System.out.println(zahl); } }
4. Zufällige Werte für Datentypen, die nicht vom Datentyp int sind
Es ist auch möglich, andere Variablen anderer Datentypen per Zufall erstellen zu lassen:
import java.util.Random; public class HelloWorld { public static void main(String[] args) { Random r = new Random(); // erstelle zahl zwischen 40 und 100 boolean m = r.nextBoolean(); double d = r.nextDouble(10); System.out.println(m); System.out.println(d); } }
Der obige Code erzeugt einen zufälligen boolean-Wert (true oder false) und einen double-Wert (Kommazahl) unter 10.
Was aber ist mit char und String?
Diese sind ein wenig komplizierter zu Erzeugen, weswegen wir sie hier an dieser Stelle noch auslassen. Trotzdem ein kleiner Hinweis: wir brauchen dazu möglicherweise Arrays und/oder die ASCII-Tabelle.
Aber dazu später mehr 🙂