В предыдущем уроке мы рассмотрели работу простейшего оператора присвоения =. Мы поняли, что он используется для присвоения значений константам и переменным. Причём присваивать можно простые значения любых типов данных, значения других переменных и констант, значения сложных выражений. В текущем уроке рассмотрим вариации оператора присвоения.
- += Сложение с присвоением
- -= Вычитание с присвоением
- *= Умножение с присвоением
- /= Деление с присвоением
- %= Деление по модулю с присвоением
Работают все эти операторы очень просто.
+= Сложение с присвоением
Выражение a += b является аналогом выражения a = a + b. То есть переменной a присваивается значение, равное сумме первоначального (предыдущего) значения переменной a и значения переменной b.
Пример использования c числовыми данными. Объявляем 2 целочисленные переменные
int a = 2;
int b = 3;
Далее используем оператор сложения с присвоением
a += b;
Первоначальное значение переменной a: 2, значение переменной b: 3. Команда a += b; присваивает переменной a сумму исходного значения переменной a и значения переменной b. 2 + 3 = 5.
Таким образом после выполнения команды a += b; значение переменной a станет равно 5.
Если выполнить команду a = a + b; то результат будет таким же. Переменной a присваивается значение 2 + 3, равное 5.
При работе с данными строкового типа ситуация аналогичная
String a = "Привет, ";
String b = "Мир!";
Команда a += b; присвоит переменной a значение строкового типа "Привет, Мир!"
-= Вычитание с присвоением
Выражение a -= b является аналогом выражения a = a - b
Оператор -= работает только с числовыми типами данных.
Пример использования.
int a = 8;
int b = 5;
Далее используем оператор вычитания с присвоением
a -= b;
Значению переменной a присваивается значение, равное a - b, которое равно 8 - 5, то есть 3.
Таким образом, после выполнения оператора a-=b; значение переменной a станет равно 3.
*= Умножение с присвоением и /= Деление с присвоением
Эти операторы работают также с числовыми типами данных аналогично предыдущим операторам.
Выражение a *= b является аналогом выражения a = a * b;
Выражение a /= b является аналогом выражения a = a / b;
Рассмотрим примеры использования.
int a = 10;
int b = 2;
Если использовать оператор a *= b то он присвоит переменной a значение, равное a * b, которое равно 10 * 2, то есть 20.
Если использовать оператор a /= b то он присвоит переменной a значение, равное a / b, которое равно 10 / 2, то есть 5.
%= Деление по модулю с присвоением
И этот оператор работает с числовыми типами данных.
Выражение a %= b является аналогом выражения a = a % b;
Приведём пример использования.
int a = 19;
int b = 5;
Оператор a %= b; присвоит переменной a значение, равное остатку от деления по модулю 19 на 5. Высчитаем, чему оно равно. 19 / 5 = 3,8. Отбрасываем дробную часть, остаётся 3. Значит, в числе 19 содержатся 3 целых пятёрки. 3 * 5 = 15. Остаток от деления по модулю на 5 равен 19 - 15 = 4.
Таким образом, оператор a %= b; присвоит переменной a значение, равное a % b, равное 4.
Теперь на практике рассмотрим работу этих операторов.
Создадим новый класс с именем Prisv
class Prisv
{
}
Внутри фигурных скобок класса Prisv объявим главный метод main
public static void main (String[] args)
{
}
Внутри фигурных скобок метода main объявим 2 целочисленные переменные
int a = 3;
int b = 4;
и выведем на экран их начальные значения:
System.out.println("Начальное значение переменной a " + a);
System.out.println("Начальное значение переменной b " + b);
Далее применим к переменной a оператор сложения с присвоением
a += b;
Выведем на экран измененное значение переменной a
System.out.println("Значение переменной a после выполнения оператора a+=b " + a);
Затем применим к переменной a оператор вычитания с присвоением
a -= b;
Ещё раз выведем на экран измененное значение переменной a
System.out.println("Значение переменной a после выполнения оператора a-=b " + a);
Теперь применим к переменной b оператор умножения с присвоением
b *= a;
Выведем на экран измененное значение переменной b
System.out.println("Значение переменной b после выполнения оператора b *= a " + b);
Затем применим к переменной b оператор деления с присвоением
b /= a;
Выведем на экран измененное значение переменной b
System.out.println("Значение переменной b после выполнения оператора b /= a " + b);
И, наконец, применим к переменной b оператор деления по модулю с присвоением
b %= a;
и выведем на экран новое значение переменной b
System.out.println("Значение переменной b после выполнения оператора b %= a " + b);
И, напоследок, продемонстрируем работу оператора += с данными строкового типа.
Объявим 2 переменные строкового типа
String text1 = "Привет, ";
String text2 = "_____________!";
Вместо _____________ укажите своё имя. А я укажу своё.
Теперь применим к строковым данным оператор +=
text1 += text2;
и выведем на экран результат присваивания с объединением строк
System.out.println("Результат объединения строк: " + text1);
Далее сохраним программу под именем Prisv.java
скомпилируем командой javac Prisv.java и запустим командой java Prisv
Выводы:
- Выражение a += b; является аналогом выражения a = a + b;
- Выражение a -= b; является аналогом выражения a = a - b;
- Выражение a *= b; является аналогом выражения a = a * b;
- Выражение a /= b; является аналогом выражения a = a / b;
- Выражение a %= b; является аналогом выражения a = a % b;
- Оператор += используется как с числовыми, так и со строковыми типами данных
- Операторы +=, -=, *=, %= используются с числовыми типами данных
Ссылка на предыдущий урок
Ссылка на следующий урок
Ссылка на содержание курса