Не могу понять почему выражение y >> x++ * z всегда равно 0
Делаю дз на курсах и не могу понять почему компилятор пишет что Result of 'y >> x++ * z' is always '0'. В консоли итоговый ответ 5. Подскажите пожалуйста почему же выражение равно нулю.
int x = 5, y = 10, z = 15;
x += y >> x++ * z;
System.out.println("Переменная х = " + x);
Ответы (1 шт):
Автор решения: Anton Shchyrov
→ Ссылка
Для начала смотрим на приоритет операторов в Java
- Постфиксный инкремент и декремент
- Префиксный инкремент и декремент
- Умножение, деление, нахождение остатка
- Сложение, вычитание
- И самое последнее - присвоение.
Теперь расставим скобки в вашем выражении
x += (y >> ((x++) * z));
Теперь распишем значение каждой скобки исходя из
int x = 5, y = 10, z = 15;
- x++ == 5,
- 5 * 15 == 75
- 10 >> 75 == 0
- 5 += 0 == 5