Что выведет код Junior Основы языка обновлено
Целочисленное деление и приведение
Вопрос
Что выведет код? По строке на каждый вывод.
fun main() {
val a = 7
val b = 2
println(a / b)
println(a % b)
println(a / b.toDouble())
println(-7 / 2)
println(-7 % 2)
println(Int.MAX_VALUE + 1)
}
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: 3, 1, 3.5, -3, -1, -2147483648. Деление двух Int целочисленное с отбрасыванием дробной части к нулю: 7 / 2 = 3, -7 / 2 = -3.
Что выведет
3
1
3.5
-3
-1
-2147483648
Разбор
Деление двух Int целочисленное с отбрасыванием дробной части к нулю: 7 / 2 = 3, -7 / 2 = -3. Остаток берёт знак делимого: -7 % 2 = -1 (для математического остатка есть mod: (-7).mod(2) == 1). Если хотя бы один операнд Double, деление вещественное. Переполнение Int молчаливое: Int.MAX_VALUE + 1 превращается в Int.MIN_VALUE, исключения нет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.