So erhalten Sie eine Zufallszahl in Kotlin: Vollständiger Leitfaden mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Zufälligkeit ist kein Chaos: Wie Kotlin die Aufgabe von Stack Overflow löst

\n\n

Jeder Entwickler hat mindestens einmal in seinem Leben Code zur Generierung einer Zufallszahl geschrieben. Scheinbar könnte es nicht einfacher sein. Aber wenn diese Frage auf Stack Overflow gestellt wird (und die Frage "How can I get a random number in Kotlin?" sammelt tausende Aufrufe), wird klar: Es gibt mehr Fallstricke, als man denkt. Besonders wenn Sie von Java oder Python wechseln.

\n\n

In diesem Artikel werden wir die Generierung von Zufallszahlen in Kotlin von einfachen bis zu fortgeschrittenen Techniken behandeln. Sie erfahren, wie Sie eine zufällige ganze Zahl, eine Dezimalzahl erhalten, wie Sie einen Bereich festlegen und sogar wie Sie einen kryptografisch sicheren Random für die Sicherheit generieren. Los geht's!

\n\n

Grundlagen: Random in Kotlin

\n\n

Kotlin hat keine eigene separate Klasse für Random – es verwendet das leistungsstarke java.util.Random aus Java, jedoch mit einer viel benutzerfreundlicheren Syntax. Dank Erweiterungsfunktionen kann Kotlin random Code buchstäblich in einer Zeile geschrieben werden.

\n\n

Der einfachste Weg: Random.nextInt()

\n\n

Wenn Sie einfach eine zufällige ganze Zahl (von 0 bis zum Maximalwert von Int) benötigen, verwenden Sie:

\n\n
import kotlin.random.Random\n\nfun main() {\n    val randomNumber = Random.nextInt()\n    println("Zufallszahl: $randomNumber")\n}
\n\n

Jeder Durchlauf gibt einen neuen Wert aus. Aber meistens müssen wir den Bereich einschränken. Dafür gibt es eine überladene Version:

\n\n
val fromZeroToTen = Random.nextInt(10)   // 0..9\nval fromFiveToFifteen = Random.nextInt(5, 15) // 5..14
\n\n
Wichtig: In Kotlin, wie auch in Java, wird die obere Grenze nicht eingeschlossen. Random.nextInt(10) gibt eine Zahl von 0 bis 9 zurück.
\n\n

Dezimalzahlen: Random.nextDouble() und Random.nextFloat()

\n\n

Zur Generierung eines zufälligen Float in Kotlin oder Double verwenden Sie:

\n\n
val randomDouble = Random.nextDouble()   // 0.0..1.0\nval randomFloat = Random.nextFloat()     // 0.0..1.0\n\n// Mit Bereich:\nval doubleInRange = Random.nextDouble(10.0, 20.0) // 10.0..20.0
\n\n

Beachten Sie: nextFloat() unterstützt keinen Bereich – nur nextDouble(). Wenn Sie einen Float in einem Bereich benötigen, konvertieren Sie:

\n\n
val customFloat = Random.nextDouble(1.5, 5.5).toFloat()
\n\n

Generierung von Zufallszahlen in einem Bereich: Praktische Beispiele

\n\n

Am häufigsten wird in realen Projekten eine Zufallszahl in einem bestimmten Bereich Kotlin benötigt. Lassen Sie uns die gängigsten Szenarien durchgehen.

\n\n

Zufällige ganze Zahl von 1 bis 100 (inklusive)

\n\n

Um die obere Grenze einzuschließen, addieren Sie einfach 1:

\n\n
val diceRoll = Random.nextInt(1, 7)  // 1..6 (wie ein Würfel)\nval lottery = Random.nextInt(1, 101) // 1..100
\n\n

Zufälliger Index eines Arrays oder einer Liste

\n\n

Eine der häufigsten Aufgaben ist es, ein zufälliges Element aus einer Sammlung zu erhalten:

\n\n
val colors = listOf("Rot", "Blau", "Grün", "Gelb")\nval randomColor = colors[Random.nextInt(colors.size)]\nprintln("Zufällige Farbe: $randomColor")
\n\n

Aber in Kotlin gibt es eine noch elegantere Methode – die Funktion random():

\n\n
val randomColor = colors.random()\nprintln("Zufällige Farbe: $randomColor")
\n\n

Unter der Haube macht sie dasselbe, aber der Code wird sauberer.

\n\n

Zufallszahl mit Schrittweite

\n\n

Manchmal müssen Zahlen generiert werden, die ein Vielfaches eines bestimmten Wertes sind. Zum Beispiel gerade Zahlen von 0 bis 100:

\n\n
fun randomEven(max: Int): Int {\n    val half = max / 2\n    return Random.nextInt(0, half + 1) * 2\n}\n\nprintln(randomEven(100)) // 0, 2, 4, ..., 100
\n\n

Fortgeschrittene Techniken: Sequenzen und kryptografische Sicherheit

\n\n

Zufällige Zahlenfolge

\n\n

Wenn Sie eine Liste von Zufallszahlen generieren müssen, verwenden Sie generate

Blogs

Buchempfehlungen