Операции и вычисления

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

Сложение строк

В первую очередь хочу поведать про сложение строк (это ещё в узких кругах называют конкатенацией). Эта операция не подразумевает именно математических вычислений – она просто позволяет “собрать” из нескольких элементов целую строку. Например, у нас есть переменная типа int, хранящая количество долларов. Мы хотим получить строку, где будет написано “Баланс”, это число плюс символ валюты. Как это сделать?

В итоге выведена будет строка, содержащая все эти три элемента. Переменная dollarStr типа String хранит в себе значение “Ваш баланс: 85$“.

Скриншот консоли IntelliJ IDEA с выводом текущего баланса в долларах

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

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

Как и в обычной всем известной математике, в Java присутствуют операции сложения (+), вычитания (-), умножения (*) и деления (/). Также существует оператор взятия остатка от деления (%). Однако лучше 1 раз увидеть код, чем 100 раз услышать его описание, поэтому примеры в студию.

Скриншот консоли IntelliJ IDEA с выводом количества шахмат на доске

В переменной whiteChess хранилось число 16, аналогично в blackChess. В итоге переменная chessAtAll стала вместилищем их суммы – то есть 32. Столько шахмат на шахматной доске в начале игры, когда ещё никто никого не сбил.

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

Можно выполнять вполне конкретные операции, как мы с вами сейчас делаем. Однако иногда программы требуют некоторой случайности (например, случайный цвет). В таком случае применяется генерация случайных чисел.

Теперь рассмотрим расчёт результатов прохождения теста.

В переменной questionCount хранится 21 – общее число вопросов теста. Переменная correctAnswers указывает, что правильных ответов было дано 17. В итоге, если разделить одно на другое и умножить на 100%, получим примерно 80.95% (в программе не выполнялось округление).

Скриншот консоли IntelliJ IDEA с выводом количества правильных ответов и процентов результата

Если вы приглядитесь к коду деления, то заметите один нюанс. Это очень важный нюанс для деления целых чисел в программировании. Не один и не два программиста попадались на эту ловушку. Они ломали голову, почему их программа делает не то, чего от неё ожидают. Если просто разделить целое число на целое, например, 20 на 3, то и результат тоже будет целым – 6. Для того, чтобы было произведено реальное деление дробных чисел, нужно хотя бы одно из чисел сделать дробным. Как? Да хоть как в примере – домножить на 1.0 – вполне себе дробное число. Да, “correctAnswers * 1.0 / questionCount” написано именно так для этой цели. Мы как бы сообщаем компилятору, что хотим видеть деление вещественных чисел.

Следующий пример покажет, как работать с остатком от деления. Помимо этого, в нём также показано, как делить целые числа без дробной части. Будем делить конфеты между ребятишками. Для этого нужно большое математическое выражение. Части этого выражения вынесем в отдельные операции и получится код:

Скриншот консоли IntelliJ IDEA с выводом задачки про конфеты

С помощью целочисленного деления получилось узнать, что каждому из 12 ребят в классе достанется по 8 целых конфет. Не станет же учитель линейкой разрезать конфеты. Так как их изначально было 100, а после трапезы учителя стало 98, то лишних конфет останется 2. Кому они потом там достанутся – это уже не наша ответственность.

С помощью трёх примеров нам удалось попробовать различные математические операции. Это были сложение, вычитание, умножение, деление (как дробное, так и целочисленное), а также взятие остатка.

Сокращённые операции

Программисты любят простоту. А потому они стараются сократить количество необходимого к написанию кода. Для некоторых операций существуют более короткие формы записи, с которыми мы сейчас с вами познакомимся. В следующих двух примерах код выполняет абсолютно одинаковые операции – отличается лишь форма записи. Первая – короче. Вы, конечно, можете использовать и вторую поначалу, но первая гораздо более распространена и удобна.

Сначала number был 0. К нему прибавили 1, и получилось 1. Затем прибавили 10, стало 11. Отняли 1, вышло 10. Разделили на 2, оказалось 5. Отняли ещё 1, осталось 4. Под конец умножили на 3, чтобы получить 12.

Сокращение ++ называют инкрементом, а декрементом.

Скриншот консоли IntelliJ IDEA с выводом нескольких чисел

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

Операции и вычисления — это, мягко говоря, сердце программирования. Теперь, когда вы освоили эту информацию, у вас есть надёжная база для создания более сложных и увлекательных программ на языке Java.

Добавить комментарий