Операции над переменными типа int
— Приветствую, Амиго! Сегодня мы с тобой будем разбираться с переменными типа int .
— Ты, как любой начинающий программист, пребываешь в своих иллюзиях. Ты что-то о них знаешь. Впрочем, ладно. Для начала давай разберёмся с вычислением целочисленных выражений. Ты ещё не забыл, как выглядит сокращённая запись создания и инициализации переменной?
— Всё верно. И каким может быть это самое значение в правой части от оператора присваивания (знака равенства)?
— Именно. А точнее — комбинация чисел, переменных и знаков + , — , * , / .
— Также можно использовать скобки ( ) . Главное, чтобы в результате получилось целое число.
— Кстати, в Java, как и в математике, сначала вычисляются выражения внутри скобок, а затем — вовне. Если вдруг забыл, напомню, умножение и деление имеют равный приоритет, и он выше, чем у сложения и вычитания.
— А можно ли использовать в выражении переменные?
— Отличный вопрос, Амиго. Можно. Вот пример:
int a = 1; int b = 2; int c = a * b + 2;
— Более того, одна и та же переменная может одновременно быть слева и справа от оператора присваивания :
int x = 5; x = x + 1; x = x + 1; x = x + 1; x = x + 1; x = x + 1;
— Это несколько сбивает с толку.
— С новичками так часто бывает. Не волнуйся — привыкнешь. Просто в языке Java символ = – это не обозначение равенства , а команда, которая в переменную слева от знака = заносит вычисленное значение выражения справа от знака = .
— Да. Поэтому не бойся записей вроде x = x + 1 . Ты просто заносишь в ячейку новое значение переменной x . Скажу больше: эту операцию ты будешь делать постоянно.
2. Деление целых чисел
— Амиго, ты умеешь делить целые числа друг на друга?
— Естественно! Я заканчивал младшую школу.
— В школьной арифметике так и есть. А вот в Java при делении одного целого числа на другое целое число всегда получается целое число. Остаток от деления при этом отбрасывается. Или же можно сказать, что результат деления всегда округляется до целого в меньшую сторону.
3. Остаток от деления целых чисел
— Кроме сложения, вычитания, умножения и деления для целых чисел в Java есть еще оператор «остаток от деления». Используется для этого символ процент – % . Это именно остаток от деления целого числа на целое, а не дробная часть.
— Не совсем понял, как считается остаток.
— Говоришь же, учился в младшей школе. Так уж и быть, напомню: допустим, тебе нужно разделить число 19 на 3 .
— Ага. Это понятно. А если делимое меньше делителя?
— Всё, теперь ясно. А зачем вообще этот оператор нужен?
— На самом деле это очень полезный оператор, и используется он довольно часто. Например, чтобы узнать, четное число или нет, достаточно поделить его на 2 и полученный остаток сравнить с нулем. Если остаток от деления равен нулю, число четное, если равен единице — нечетное.
— Выглядит эта проверка так:
Где, как вы уже догадались, a % 2 – получение остатка от деления на 2 (т.е. 0 или 1 ), а == используется для сравнения с нулем.
4. Инкремент и декремент
— В программировании очень часто приходится увеличивать или уменьшать переменную на единицу.
— Ну да. x = x + 1 . Видишь, я запомнил!
— Ты, конечно, молодец, но поскольку операция увеличения именно на единицу используется чрезвычайно часто, для неё в Java выделили специальные команды:
— Оператор инкремент (увеличение на единицу) выглядит так:
— Эта команда делает то же самое, что и команда a = a + 1 ; – увеличивает переменную a на единицу.
— Рад, что тебе нравится. Помимо инкремента есть ещё оператор декремент . Он выглядит так:
— Догадаешься, что он делает?
— Видимо, уменьшает на единицу!
— Всё правильно! Эта команда делает то же самое, что и команда a = a — 1 ; – уменьшает переменную a на единицу.
Инкремент и декремент в Java
Что за операторы такие, зачем им префиксная и постфиксная формы, и как вычислять сложные выражения с ними (пригодится на экзамене и собеседовании).
В программировании часто приходится выполнять операции (вычислять результат выражений), в которых переменная должна увеличиться или уменьшиться на единицу.
Для этого придуманы унарные операторы ++ и —. С ними код короче и писать его быстрее.
Оператор (++) называется инкремент. Он увеличивает значение целочисленной переменной на единицу.
Обратный оператор (—) зовётся декремент. Он значение переменной на один уменьшает.
Пример 1
int x = 3, у = 3; x++; // инкрементируем x у--; // декрементируем y System.out.println("x hljs-string" style="color: #a8ff60;">", y stk-reset stk-description" data-ce-tag="description">