Досрочный return в Kotlin
После команды return функция заканчивает
работу. Код, записанный после нее, не
выполнится:
fun func(num: Int): Int {
return num * num
println("!") // этот код никогда не выполнится
}
fun main() {
val res = func(3)
println(res) // 9
}
В функции может быть несколько команд
return, но выполнится только одна.
Какая именно, решает условие:
fun func(num: Int): String {
if (num >= 0) {
return "+"
} else {
return "-"
}
}
fun main() {
println(func(3)) // +
println(func(-3)) // -
}
Пусть функция возвращает сумму чисел
от 1 до 5:
fun func(): Int {
var sum = 0
for (i in 1..5) {
sum += i
}
return sum
}
fun main() {
val res = func()
println(res) // 15
}
Если поставить return внутрь цикла,
цикл сделает одну итерацию и функция
закончится. В сумме окажется только 1:
fun func(): Int {
var sum = 0
for (i in 1..5) {
sum += i
return sum
}
return sum
}
fun main() {
val res = func()
println(res) // 1
}
Досрочный return внутри цикла бывает
нужен специально. Функция ниже считает,
сколько первых элементов списка сложить,
чтобы сумма стала не меньше 10.
Если порог так и не достигнут, функция
вернет 0:
fun func(arr: List<Int>): Int {
var sum = 0
for (i in arr.indices) {
sum += arr[i]
if (sum >= 10) {
return i + 1
}
}
return 0
}
fun main() {
val res = func(listOf(1, 2, 3, 4, 5))
println(res) // 4
}
Что выведется в консоль в результате выполнения следующего кода:
fun func(num: Int): Int {
return num
val res = num * num
return res
}
fun main() {
println(func(3))
}
Объясните почему.
Что выведет каждый из println
в результате выполнения следующего кода:
fun func(num: Int): Int {
if (num <= 0) {
return -num
} else {
return num * num
}
}
fun main() {
println(func(10))
println(func(-5))
}
Объясните почему.
Что выведет каждый из println
в результате выполнения следующего кода:
fun func(num: Int): Int {
if (num <= 0) {
return -num
}
return num * num
}
fun main() {
println(func(10))
println(func(-5))
}
Объясните почему.
Что выведется в консоль в результате выполнения следующего кода:
fun func(num: Int): Int {
var sum = 0
for (i in 1..num) {
sum += i
return sum
}
return sum
}
fun main() {
println(func(5))
}
Объясните почему.
Что хотел сделать автор данного кода? Исправьте ошибку автора.
Напишите функцию, которая параметром будет
принимать число и делить его на 2
столько раз, пока результат не станет
меньше 10. Пусть функция возвращает
количество итераций, которое потребовалось
для достижения результата.