Kotlin для початківців: Основи — Випадкові числа
Архів
22 листопада 2022 р.3 хв читанняВостаннє оновлено 11.01.2026Kotlin для початківців
Випадковість в Kotlin
Я думаю ви багато разів зустрічались з поняттям «випадковості».
Була це лотерея, чи енеки-бенеки – неважливо.
Наше життя постійно спіткає та чи інша випадковість. Розгляньмо, як випадковість працює в Kotlin.
Random
Говорячи про випадковість в Kotlin, будь-який Kotlin-розробник відразу згадає
kotlin.random
пакет, який вбудований в Kotlin.За допомогою нього ви можете:
- •генерувати випадкові числа: цілі (
Int,Long) та з плаваючою точкою (Float,Double) - •генерувати випадковий логічний тип
Boolean
💡 Не завадить знати
Також,kotlin.randomможе генерувати байти та біти, але ми ці типи ще не розглядали.
Перейдім до більш практичної частини. Як це все робиться?
Щоб отримати випадкове ціле число, ми можемо використати функцію
Random.nextInt(from, until):kotlin
import kotlin.random.Random
fun main() {
println(Random.nextInt(0, 9))
}
Виведе:
text
8
Тобто, випадковість обмежена від 0 до 9.
⚠️ Увага
Можуть бути будь-які цифри, головне – не переплутати 'від' з 'до' і не зробити наступнеRandom.nextInt(9, 0). Буде помилка!
За аналогією працюють і інші функції:
kotlin
import kotlin.random.Random
fun main() {
println(Random.nextInt(0, 9))
println(Random.nextLong(1L, 1000000L))
println(Random.nextDouble(1.9, 9.9))
println(Random.nextBoolean())
}
Виведе приблизно таке:
text
2
386039
7.176104912683028
false
Вирішім наступне завдання:
ℹ️ Завдання №1
Користувач вводить число від 1 до 30 (перевірте число). Зробіть програму, що буде вгадувати число користувача та друкувати скільки спроб знадобилось, щоб вгадати вказане число.
Спочатку отримаємо число та перевіримо його:
kotlin
fun main() {
val number = readln().toInt()
if(number < 0 || number > 30) {
println("Число має бути в діапазоні між 1 та 30.")
return // виходимо з функції
}
}
Тепер для того, щоб вгадати число ми можемо скористатись циклічним оператором
whilekotlin
import kotlin.random.Random // додаємо до нашого простору імен тип Random
fun main() {
val number = readln().toInt()
if (number < 0 || number > 30) {
println("Число має бути в діапазоні між 1 та 30.")
return // виходимо з функції
}
var attempt = 0 // робимо змінну, щоб зберігати кількість спроб
while (true) {
if (Random.nextInt(0, 30) == number) {
println("Число було знайдено за $attempt") // робимо конкатенацію
break // виходимо з циклу
}
attempt++ // додаємо 1 до attempt
}
}
💡 Цікаво знати
Якесь незрозумілеattempt++, чи не так? Насправді це просто спрощення дляattempt = attempt + 1. Воно також існує і в інший бік:attempt--.До речі, така операція має два види:
- •
префіксний інкеремент / декремент- •
постфіксний інкремент / декрементВ нашому випадку, це постфіксний інкремент. Але чим вони відрізняються?Префіксний інкремент спочатку додає, а потім повертає значення з виразу, а постфіксний інкремент спочатку віддає значення, а потім додає один. Тобто:kotlinvar x = 0 println(x++) // виведе 0 println(x) // тільки тут він виведе 1 var y = 0 println(++y) // виведе 1
Kotlin для початківців
Вам також може сподобатися
7 хв читання
Kotlin для початківців: Структури даних — Абстракції
Ускладнимо завдання: у нас є притулок з домашніми тваринами, і нам потрібно зберігати уніфіковану інформацію про кожну тварину.
Читати нотатку
2 хв читання
Kotlin для початківців: Основи — Висновок
У цій частині курсу ми розглянули чимало базових тем, які є вже досить вагомим фактором у вивченні як і котліну, так і інших мов.
Читати нотатку