Прямые ссылки на публичные уроки для быстрого старта и стабильной индексации lesson-страниц.
Классические операции — сложение, вычитание, умножение, деление — в Kotlin работают по тем же законам, что и в математике, с теми же операторами.
Объявим несколько переменных и поработаем с ними:
val a = 5 val b = 7 println(a + b) // результат передаётся напрямую в println
Результат также можно сохранить в отдельную переменную:
val sum = a + b println(sum)
Переменную можно инициализировать как обычным числом, так и выражением — в этом случае выражение сначала вычислится, затем результат присвоится переменной.
Важно. Нельзя объявить переменную без инициализации и без явного указания типа — компилятор не сможет определить тип и выдаст ошибку:
val c // ошибка компиляцииРешение: либо сразу инициализировать переменную (
val c = 5), либо явно указать тип (val c: Int).
println(10 / 3) // результат: 3
При делении целых чисел дробная часть отбрасывается. Чтобы получить дробный результат, необходимо явно указать дробный тип:
val intNum1: Int = 10 val intNum2: Int = 3 println(intNum1 / intNum2) // 3 val floatNum1: Float = 10f val floatNum2: Float = 3f println(floatNum1 / floatNum2) // 3.3333333 val doubleNum1: Double = 10.0 val doubleNum2: Double = 3.0 println(doubleNum1 / doubleNum2) // 3.3333333333333335
Float — добавляем f в конце значения: 10fDouble — делаем число дробным, добавив точку: 10.0Вывод: чтобы получить дробный результат деления, нужно явно объявить переменные дробного типа.
val complexExpression = (a + b) * 2 - 4 / 2 println(complexExpression)
Приоритет операций — как в математике: сначала умножение и деление, затем сложение и вычитание. Скобки изменяют порядок вычислений.
Оператор % возвращает остаток от деления:
println(10 % 3) // 1
Наиболее частое применение — определение чётности числа: если остаток от деления на 2 равен нулю, число чётное.
Если в выражении участвуют значения разных типов, итоговый тип определяется по следующим правилам:
val c = intNum1 + floatNum1 println(c::class.simpleName) // Float val d = intNum1 + floatNum1 + doubleNum1 println(d::class.simpleName) // Double
Чтобы получить имя типа переменной в коде, используется оператор ::class.simpleName.
Для изменения значения переменной на единицу существуют три равнозначные записи:
var counter = 0 counter = counter + 1 // полная запись counter += 1 // сокращённая запись counter++ // инкремент (постфиксный)
Аналогично для уменьшения:
counter -= 1 counter--
Инкремент и декремент доступны также в префиксной форме:
++counter --counter
Разница между постфиксной и префиксной формой проявляется в выражениях: префиксная сначала изменяет значение, постфиксная — сначала возвращает текущее, затем изменяет.
val a = 5 val b = 7 println(a > b) // false println(a < b) // true println(a >= b) // false println(a <= b) // true println(a == b) // false println(a != b) // true
Каждый оператор сравнения возвращает результат типа Boolean — значение true (истина) или false (ложь).