Операторы и Математика в Kotlin
Что такое операторы?
Операторы — специальные символы или ключевые слова, которые выполняют операции над данными. В Kotlin они делятся на арифметические, логические, сравнения и другие.
Арифметические операторы
Базовые операторы для работы с числами:
+— сложение:Примерval sum = 5 + 3 // 8-— вычитание:Примерval diff = 10 - 4 // 6*— умножение:Примерval product = 2 * 6 // 12/— деление (целочисленное дляInt, дробное дляDouble):Примерval div1 = 10 / 3 // 3 (Int)
val div2 = 10.0 / 3 // 3.333... (Double)%— остаток от деления:Примерval remainder = 10 % 3 // 1
Инкремент и Декремент
Разница между i++ и ++i
Пример
var a = 5
val postIncrement = a++ // postIncrement = 5, a = 6
var b = 5
val preIncrement = ++b // preIncrement = 6, b = 6
Пояснение:
- Постфиксный инкремент (
i++):
- Возвращает текущее значение переменной.
- Увеличивает значение на 1 после возврата.
- Префиксный инкремент (
++i):
- Увеличивает значение на 1 перед возвратом.
- Возвращает новое значение.
Ограничения
Допустим у вас есть число, но вы хотите его ограничить в каком-то диапазоне
Пример
var a = 5
val least = a.coerseAtLeast(3) // Если `a` меньше 3, то возвращает 3, иначе `a`, т.е. ограничивает результат, не меньше 3.
val most = a.coerseAtMost(30) // Если `a` больше 30, то возвращает 30, иначе `a`, т.е. ограничивает результат, не больше 30.
val result = a.coerseIn(0, 10) // Ограничивает `a` в диапазоне от 0 до 10.
Математические функции
Kotlin предоставляет расширенный набор функций через пакет kotlin.math.
Основные функции:
sqrt(x)— квадратный корень:Примерval root = sqrt(25.0) // 5.0pow(n)— возведение в степень:Примерval power = 2.0.pow(3) // 8.0abs(x)— модуль числа:Примерval absolute = abs(-7) // 7max(a, b)/min(a, b)— максимум/минимум:Примерval maximum = max(10, 20) // 20
val minimum = min(5, -3) // -3round(x)— округление до ближайшего целого:Примерval rounded = round(3.6) // 4.0
Примеры использования
Комбинирование операторов
Пример
val result = (10 + 3) * 2 - 5 // (13 * 2) - 5 = 21
Инкременты в цикле
Пример
var counter = 0
repeat(3) {
println(++counter) // 1, 2, 3
}
Математика в действии
Пример
fun calculateHypotenuse(a: Double, b: Double): Double {
return sqrt(a.pow(2) + b.pow(2))
}
println(calculateHypotenuse(3.0, 4.0)) // 5.0