{"id":14291,"url":"\/distributions\/14291\/click?bit=1&hash=257d5375fbb462be671b713a7a4184bd5d4f9c6ce46e0d204104db0e88eadadd","hash":"257d5375fbb462be671b713a7a4184bd5d4f9c6ce46e0d204104db0e88eadadd","title":"\u0420\u0435\u043a\u043b\u0430\u043c\u0430 \u043d\u0430 Ozon \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u0442\u0430\u043c \u043d\u0435 \u043f\u0440\u043e\u0434\u0430\u0451\u0442","buttonText":"","imageUuid":""}

Kotlin. Арифметические операторы

Статья от E-code

Когда кто-то говорит: «Я хочу язык программирования, который может делать все, что ему скажу», то я даю этому человеку леденец.

Alan J. Perlis

Согласитесь, круто же, когда Вы можете управлять чем-то. Потоками финансов, мнением других ну или хотя бы оперативной памятью в компьютере.

Такая безграничная власть может сорвать голову (и переполнить всю Вашу оперативку информацией), поэтому её нужно научиться контролировать. Поверьте, контроль и управление информацией может сделать из Вас миллионера, ну а сегодня мы научимся малому - научимся управлять данными.

И нашими помощниками в этом станут операторы (камеру выруби!), которые способны производить определенные операции над различными типами данными.

Виды операторов

Прежде чем мы с головой окунемся в мир финансовых операций, я бы всё-таки хотел уточнить, что же мы понимаем под операторами в программировании:

Операторы - это специальные символы или ключевые слова, используемые для выполнения операций над данными. Они позволяют выполнять различные арифметические, логические и другие операции.

Тот самый оператор

Да, к сожалению, сделки на фондовом рынке сюда не включены, но есть множество различных видов операторов, с помощью которых мы можем работать с переменными. А точнее с данными, которые хранятся в этих переменных.

Все операторы можно разделить на несколько видов:

  • Арифметические - операторы, знакомые нам из математики: +, -, /, *, %
  • Поразрядные - операторы, совершающие действия над двоичными разрядами чисел: shl, shr, ushr, and, or, hor, inv
  • Логические - операторы, применяемые к логическому типу данных: and, or, xor, !, in
  • Сравнения - операторы, сравнивающие объекты между собой: >, >=, <, <=, ==, !=
  • Присваивания - те же операции, что и арифметические, но еще и с присвоением: +=, -=, /=, *=, %=, ++, --
  • Другие - оставшиеся операторы. Например, тернарный оператор - ?:

Не переживайте, что многие операторы и операции Вам пока что не знакомы. Мы познакомимся с каждой группой отдельно, и уже сегодня научимся производить первые арифметические операции, заменив свой калькулятор на Kotlin!

Когда увидел все виды операторов

Ну что ж, пора приступить и к практике!

Арифметические операторы

Для того, чтобы научиться считать, не обязательно иметь математический склад ума. Достаточно просто освоить применение арифметических операторов, которые способны выполнять все математические действия, знакомые нам из скучных уроков по математике.

Наверняка Вы уже слышали такие умные слова, как "сложение", "вычитание", "умножение" и "деление".

Теперь, для того, чтобы выполнять такие сложнейшие действия, не обязательно иметь под рукой листочек с ручкой, достаточно лишь достать свой компьютер и написать пару строчек кода (что, несомненно, удастся нам легче).

Представим себе Петю, который впервые решил явиться на урок математики, где его заставляют решать сложнейшие примеры: злой учитель заставляет Петьку сложить два огромных числа, которые просто не помещаются на доске. Что же делать Пете?

На помощь придет оператор сложения "+", который избавит Петьку от мозгового штурма:

fun main() { //Создаем переменные и присваиваем им значения, которые Петя введет через консоль //После ввода строки - преобразовываем её в число для дальнейшей работы var x : Long = readLine()!!.toLong() var y : Long = readLine()!!.toLong() //Считаем сумму этих чисел и выводим ее в консоль var result = x + y println("Марья Ивановна, ответ = ${result}") }

Гении часто остаются непризнанными в обществе

Теперь, казалось бы, довольный Петька может сложить свой компьютер и сесть за парту, однако Марья Ивановна всё же недовольна таким бестактным решением и заставляет посчитать сложнейшее выражение, в котором есть сразу несколько коэффициентов, сложение "+", вычитание "-" и умножение "*":

Тогда Петя принимает стратегически верное решение - использовать сразу несколько операторов для расчета значения y:

fun main() { //Создаем переменные и присваиваем им значения, которые Петя введет через консоль //После ввода строки - преобразовываем её в число для дальнейшей работы var a : Long = readLine()!!.toLong() var b : Long = readLine()!!.toLong() //Считаем значение выражения с несколькими операциями и выводим результат в консоль var y = 3*a*a + a - 7*b println("Марья Ивановна, проще простого: ${y}") }

Феноменально

Потерявшая дар речи Марья Ивановна открывает журнал и просит Петю посчитать его среднюю оценку за четверть, если он получил только "2" и "5".

Казалось бы, что тут сложного? Сложили себе все оценки и разделили их с помощью оператора "/" на общее количество. Это Вам не курсы акций же прогнозировать!

fun main() { var mark1 = 5 var mark2 = 2 //Считаем средний балл Пети var averageMark = (mark1 + mark2) / 2 println("Да у меня средний балл аж ${averageMark}") }

Просто? Но не спешим радоваться, ведь открыв консоль, Петя увидит, что вместо 3.5 у него выходит ровная тройка:

Сегодня явно не Петин день

Почему так произошло? А всё потому, что

при делении целого числа на целое число Kotlin выдает в качестве результата целое число

Чтобы исправить эту ошибку достаточно лишь сделать любое число дробным:

fun main() { var mark1 = 5.0 var mark2 = 2.0 //Считаем средний балл Пети var averageMark = (mark1 + mark2) / 2 println("Да у меня средний балл аж ${averageMark}") }

Делаем из Пети хорошиста

Так-то лучше!

Окей, мы рассмотрели с вами 4 основных арифметических оператора: +, -, * и /.

Но существует еще загадочный пятый оператор - оператор деления по модулю "%". Зачем нужен этот оператор?

Оператор деления по модулю "%" возвращает числитель из остатка при делении двух чисел.

Представьте, что мы делим какое-то число и получаем дробь. Так вот, оператор "%" способен взять число из числителя этой дроби, отбросив целую часть числа. Например, если мы делим 7 % 3, то получаем дробь 2 целых и 1/3. Результатом будет 1, так как это числитель в остатке нашей дроби:

Как работает оператор %

Иногда это может быть полезным, когда мы хотим проанализировать числа. Например, если нам нужно узнать последнюю цифру числа, мы можем сделать следующее деление:

fun main() { var number = 125 println(number / 10) // 5 }

Разделив по модулю на 10, мы берем число из числителя, которое всегда будет последней цифрой в любом числе (Петя не верит, пока не проверит. Проверь и ты!).

Также мы можем комбинировать целочисленное деление и деление по модулю, чтобы брать любую цифру из чисел. Например, чтобы взять вторую цифру из четырехзначного числа, мы можем сначала разделить его на 10, тем самым отбросив последнее число, а затем делить по модулю на 10, тем самым взяв вторую цифру:

fun main() { var number = 1253 println(number / 10) // 1253 / 10 = 125 println(number / 10 % 10) // 1253 / 10 % 10 = 125 & 10 = 2 }

Да, по началу это звучит безумно, но к этому можно привыкнуть, и тем более, это очень поможет Вам при решении алгоритмических задач на собеседовании.

На этом этапе давайте остановимся с Вами, ведь мы изучили 5 арифметических операторов, а это на 5 больше, чем мы знали раньше.

Что дальше?

В следующей статье мы научимся добавлять условия в код нашей программы, которое будет запускать определенные блоки кода при различных обстоятельствах (обстоятельства не должны влиять на наши планы, если вы не являетесь Kotlin-кодом).

Дорогой читатель, я надеюсь моя статья оказалась полезной для тебя!

Ты всегда можешь следить за моим творчеством на этом канале.

Спасибо за проявленный интерес!

0
Комментарии
-3 комментариев
Раскрывать всегда