• Присоединяйтесь к нашей группе в телеграмм: t.me/TEHADMru

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

admin

Администратор
Сообщения
617
Реакции
65
Сложение двух чисел:
Java:
int a = 5;
int b = 3;
int с = a + b;  // 8
Вычитания двух чисел:
Java:
int a = 5;
int b = 3;
int с = a - b;  // 2
Умножения двух чисел:
Java:
int a = 5;
int b = 3;
int с = a * b;  // 15
Деления двух чисел:
Java:
int a = 6;
int b = 2;
int с = a / b;  // 3
Есть некоторые нюансы по поводу деления, если у нас два целых числа, то результат деления будет округляться до целого числа, даже если результат присваивается переменной float или double:
Java:
int a = 10;
int b = 4;
double c = a / b;  // 2
Чтобы результат был с плавающей точкой, один из операндов должен быть с плавающей точкой:
Java:
double a = 10.0;
int b = 4;
double c = a / b;  // 2,5
Продолжение: 4.1 Приоритет арифметических операций
 
Последнее редактирование:

pisikot

Пользователь
Сообщения
73
Реакции
51
Java:
int a = 10;
int b = 4;
double c = (double) a / b;  // 2.5
 

admin

Администратор
Сообщения
617
Реакции
65
Кстати, вот твой пример, вижу такое первый раз. То есть получается ты меняешь тип переменной с int на double. Хотя значение переменной остается такое же: 10

Интересная возможность). Запомним.
 

pisikot

Пользователь
Сообщения
73
Реакции
51
Это называет явное приведение типа.
тип меняется именно у a, получается мы 10.0 / 4 = 2.5
можно и у b менять
Java:
double c = (double) a /  (double) b;  // 10.0 / 4.0 = 2.5
double c = (double) a / b;  // 10.0 / 4 = 2.5
double c = a /  (double) b;  // 10 / 4.0 = 2.5
а вот например так
Java:
double c = (double) (a / b); //2.0
//  сначала делит потом приводит 10 / 4 = 2 -> приводит в double = 2.0
 

pisikot

Пользователь
Сообщения
73
Реакции
51
Есть и неявно приведение, например тип byte можно привести к int
Java:
byte bb = 127;
int ii;
ii = bb;
т.к. значаение из byte точно влезет в int без потерь.

int можно явно привести к byte, но если значение не входит в диапазон byte будет совсем неожиданное число...
Java:
byte bb = 127; //был byte со значением 127
int ii = bb + 1; // неявно привели к int и прибавили 1
System.out.println(ii); // 128
bb = (byte) ii; //теперь int со значением 128 ясно приводим к byte
System.out.println(bb); // -128
в итоге у нас в byte лежит -128 т.к. диапазон байта от -128 до 127, он перешагнул диапазон и ушел в его начало.
если бы прибавили 2 то было бы -127
если бы прибавили 9 то было бы -120
если бы прибавили 129 то было бы 0
 
Последнее редактирование:
Верх