Исправление кода #2
Так лучше? Если нет, то хз тогда как правильно
fun main() {
val randomNumber = (1..10).random()
println("Попробуйте угадать число от 1 до 10: ")
var userNumber = getUserInput()
var result: Result
do {
result = checkNumber(randomNumber, userNumber)
when (result) {
Result.Correct -> println("Вы угадали число!")
Result.Lower -> println("Ваше число меньше загаданного")
Result.Higher -> println("Ваше число больше загаданного")
Result.Invalid -> println("Число должно быть от 1 до 10!")
}
if (result != Result.Correct){
println("Попробуйте еще раз: ")
userNumber = getUserInput()
}
} while (result != Result.Correct)
}
fun getUserInput(): Int {
val userNumber = readlnOrNull()?.toIntOrNull()
return if (userNumber != null && userNumber in 1..10) {
userNumber
} else {
println("ОТ 1 ДО 10!")
getUserInput()
}
}
enum class Result {
Correct, Lower, Higher, Invalid
}
fun checkNumber(randomNumber: Int, userNumber: Int): Result {
return when {
userNumber == randomNumber -> Result.Correct
userNumber in 1..10 -> {
if (userNumber < randomNumber) {
Result.Lower
} else {
Result.Higher
}
}
else -> Result.Invalid
}
}
3 комментария