1. Операции над переменными типа int

— Приветствую, Амиго! Сегодня мы с тобой будем разбираться с переменными типа int.

— Так я вроде их уже знаю!

— Ты, как любой начинающий программист, пребываешь в своих иллюзиях. Ты что-то о них знаешь. Впрочем, ладно. Для начала давай разберёмся с вычислением целочисленных выражений. Ты ещё не забыл, как выглядит сокращённая запись создания и инициализации переменной?

— Помню. Вот так:

int имя = значение;

— Всё верно. И каким может быть это самое значение в правой части от оператора присваивания (знака равенства)?

— Целым числом?

— Именно. А точнее — комбинация чисел, переменных и знаков +, -, *, /.

— Также можно использовать скобки ( ). Главное, чтобы в результате получилось целое число.

— Кстати, в Java, как и в математике, сначала вычисляются выражения внутри скобок, а затем — вовне. Если вдруг забыл, напомню, умножение и деление имеют равный приоритет, и он выше, чем у сложения и вычитания.

Примеры:

Команда Примечание
int a = (2 + 2) * 2;
В переменной a будет значение 8
int b = (6 - 3) / (9 - 6);
В переменной b будет значение 1
int c = (-2) * (-3);
В переменной c будет значение 6
int d = 3 / 0;
При выполнении этой команды возникнет ошибка «деление на ноль», и программа завершится.

— А можно ли использовать в выражении переменные?

— Отличный вопрос, Амиго. Можно. Вот пример:

Команда Примечание
int a = 1;
int b = 2;
int c = a * b + 2;
В переменной a будет значение 1
В переменной b будет значение 2
В переменной c будет значение 4

— Более того, одна и та же переменная может одновременно быть слева и справа от оператора присваивания:

Команда Примечание
int x = 5;
x = x + 1;
x = x + 1;
x = x + 1;
x = x + 1;
x = x + 1;
В переменной x будет значение 5
В переменной x будет значение 6
В переменной x будет значение 7
В переменной x будет значение 8
В переменной x будет значение 9
В переменной x будет значение 10

— Это несколько сбивает с толку...

— С новичками так часто бывает. Не волнуйся — привыкнешь. Просто в языке Java символ = – это не обозначение равенства, а команда, которая в переменную слева от знака = заносит вычисленное значение выражения справа от знака =.

— Оператор присваивания!

— Да. Поэтому не бойся записей вроде x = x + 1. Ты просто заносишь в ячейку новое значение переменной x. Скажу больше: эту операцию ты будешь делать постоянно.


2. Деление целых чисел

Фрагмент лекции JavaRush - университета.


— Амиго, ты умеешь делить целые числа друг на друга?

— Естественно! Я заканчивал младшую школу.

— И сколько будет 5/2?

— Два с половиной!

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

Примеры:

Команда Результат деления Примечание
int a = 5 / 2;
2.5 В переменной a будет значение 2
int b = 20 / 3;
6.6667 В переменной b будет значение 6
int c = 6 / 5;
1.2 В переменной c будет значение 1
int d = 1 / 2;
0.5 В переменной d будет значение 0


3. Остаток от деления целых чисел

— Кроме сложения, вычитания, умножения и деления для целых чисел в Java есть еще оператор «остаток от деления». Используется для этого символ процент – %. Это именно остаток от деления целого числа на целое, а не дробная часть.

Примеры:

Команда Результат деления Примечание
int a = 5 % 2;
2 и 1 в остатке В переменной a будет значение 1
int b = 20 % 4;
5 и 0 в остатке В переменной b будет значение 0
int c = 9 % 5;
1 и 4 в остатке В переменной c будет значение 4
int d = 1 % 2;
0 и 1 в остатке В переменной d будет значение 1

— Не совсем понял, как считается остаток...

— Говоришь же, учился в младшей школе. Так уж и быть, напомню: допустим, тебе нужно разделить число 19 на 3.

19 / 3 = 6

— Остаток ищется так:

19 - 6 * 3 = 1

— Ага. Это понятно. А если делимое меньше делителя?

— Ровно то же самое.

1 / 2 = 0.5
1 % 2 = 0

— А остаток.

1 - 0 * 2 = 1

— Всё, теперь ясно. А зачем вообще этот оператор нужен?

— На самом деле это очень полезный оператор, и используется он довольно часто. Например, чтобы узнать, четное число или нет, достаточно поделить его на 2 и полученный остаток сравнить с нулем. Если остаток от деления равен нулю, число четное, если равен единице — нечетное.

— Выглядит эта проверка так:

(a % 2) == 0

Где, как вы уже догадались, a % 2 – получение остатка от деления на 2 (т.е. 0 или 1), а == используется для сравнения с нулем.



4. Инкремент и декремент

Фрагмент лекции JavaRush - университета.


— В программировании очень часто приходится увеличивать или уменьшать переменную на единицу.

— Ну да. x = x + 1. Видишь, я запомнил!

— Ты, конечно, молодец, но поскольку операция увеличения именно на единицу используется чрезвычайно часто, для неё в Java выделили специальные команды:

— Оператор инкремент (увеличение на единицу) выглядит так:

a++;
Увеличение на единицу

— Эта команда делает то же самое, что и команда a = a + 1; – увеличивает переменную a на единицу.

— Выглядит красиво!

— Рад, что тебе нравится. Помимо инкремента есть ещё оператор декремент. Он выглядит так:

a--;
Декремент

— Догадаешься, что он делает?

— Видимо, уменьшает на единицу!

— Всё правильно! Эта команда делает то же самое, что и команда a = a - 1; – уменьшает переменную a на единицу.

Примеры:

Команда Примечание
int x = 5;
x++;
x++;
x++;
x++;
x++;
В переменной x будет значение 5
В переменной x будет значение 6
В переменной x будет значение 7
В переменной x будет значение 8
В переменной x будет значение 9
В переменной x будет значение 10
int x = 5;
x--;
x--;
x--;
x--;
x--;
x--;
В переменной x будет значение 5
В переменной x будет значение 4
В переменной x будет значение 3
В переменной x будет значение 2
В переменной x будет значение 1
В переменной x будет значение 0
В переменной x будет значение -1