Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktPmFnER 310 of 522 menu
◀ ▶

Досрочный 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. Пусть функция возвращает количество итераций, которое потребовалось для достижения результата.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить