Я думаю ви багато разів зустрічались з поняттям «випадковості».
Була це лотерея, чи енеки-бенеки – неважливо.
Наше життя постійно спіткає та чи інша випадковість. Розгляньмо, як випадковість працює в Kotlin.
ℹ️ Завдання №1
Користувач вводить число від 1 до 30 (перевірте число). Зробіть програму, що буде
вгадувати число користувача та друкувати скільки спроб знадобилось, щоб вгадати вказане число.
Спочатку отримаємо число та перевіримо його:
fun main() { val number = readln().toInt() if(number < 0 || number > 30) { println("Число має бути в діапазоні між 1 та 30.") return // виходимо з функції }}
Тепер для того, щоб вгадати число ми можемо скористатись циклічним оператором while
import kotlin.random.Random // додаємо до нашого простору імен тип Randomfun 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--.
До речі, така операція має два види:
префіксний інкеремент / декремент
постфіксний інкремент / декремент
В нашому випадку, це постфіксний інкремент. Але чим вони відрізняються?
Префіксний інкремент спочатку додає, а потім повертає значення з виразу, а постфіксний
інкремент спочатку віддає значення, а потім додає один. Тобто:
var x = 0println(x++) // виведе 0println(x) // тільки тут він виведе 1var y = 0println(++y) // виведе 1