Ключевой момент: операторы +, -, *, / и % могут комбинироваться с оператором присваивания, для формирования расширенных операторов.
Очень часто текущее значение переменной используется, изменяется, а затем переназначается этой же переменной. Например, следующая инструкция увеличивает значение переменной count на 1:
count = count + 1;
Java позволяет соединять операторы присваивания и сложения, используя расширенный (или составной) оператор присваивания. Например, предыдущая инструкция может быть записана как:
count += 1;
+= называется оператором сложение-присваивание. Следующая таблица расскажет о других расширенных операторах присваивания:
Оператор | Имя | Пример | Эквивалент |
---|---|---|---|
+= | Сложение-присваивание | i += 8 | i = i + 8 |
-= | Вычитание-присваивание | i -= 8 | i = i — 8 |
*= | Умножение-присваивание | i *= 8 | i = i * 8 |
/= | Деление-присваивание | i /= 8 | i = i / 8 |
%= | Нахождение остатка от деления-присваивания | i %= 8 | i = i % 8 |
Расширенный оператор присваивания выполняется последним после всех других операторов в вычисляемом выражении. Например:
x /= 4 + 5.5 * 1.5;
то же самое что и
x = x / (4 + 5.5 * 1.5);
Предупреждение: в расширенных операторах присвоения нет пробелов. Например, + = должен быть +=.
Справка: как и оператор присваивания (=), операторы (+=, -=, *=, /=, %=) могут использоваться для формирования инструкции присваивания, а также выражения. Например, в следующем коде x += 2 – это инструкция в первой строке и выражение во второй строке.
x += 2; // Инструкция System.out.println(x += 2); // Выражение
Проверь себя:
- Покажите вывод следующего кода:
double a = 6.5; a += a + 1; System.out.println(a); a = 6; a /= 2; System.out.println(a);