Найти тему

Крутой курс Java для "чайников". Урок 7. Арифметические операции в Java.

Арифметическими операциями в Java являются:

  • + Сложение (или конкатенация строк);
  • - Вычитание
  • * Умножение
  • / Деление
  • % Деление по модулю
  • ++ Инкремент
  • -- Декремент

В данном уроке мы продемонстрируем работу каждого из операторов. Для этого несколько слов стоит сказать об операторе присвоения =. Прошу не путать с оператором равенства ==. Он будет описан в следующих уроках.

Мы уже ранее использовали оператор = в предыдущих уроках, но не разбирали принцип его работы. А он достаточно прост. Например в выражении a = 1; переменной a присваивается целочисленное значение 1. В выражении a = 'a'; переменной a присваивается значение символа 'a' в юникоде. Переменным можно присваивать значения того типа, которого объявлена переменная. Если попытаться присвоить значение другого типа данных, компилятор выдаст ошибку. Переменным также можно присваивать значения арифметических выражений. Например, a = 2*3; или a = 4 * 5 * 6; Переменным можно присваивать значения других переменных или констант. Например,

b = 3;

a = b; В данном выражении мы присвоили переменной a значение переменной b, равное целому числу 3. Таким образом, переменная a теперь также имеет значение 3. То есть обе переменных теперь равны 3.

Переменным можно присваивать значения операций между значениями переменных и просто числами. Например.

b = 5;

a = b + 2;

В данном случае мы присвоили переменной a значение выражения b + 2, то есть 5 + 2, то есть 7. После выполнения этой команды значение переменной a становится равным 7.

Итак, вернёмся к теме урока - к арифметическим операциям.

Оператор + сложение или конкатенация строк.

Этот оператор применим к числовым типам данным, например, int или float и т.д. А также к строковым String.

С числовыми типами данных, оператор работает очень просто. Например,

int chislo1 = 4;

int chislo2 = 5;

int sum;

sum = chislo1 + chislo2

В данном случае оператор сложения выдаёт сумму двух переменных chislo1 и chislo2. Оператор = присваивает эту сумму переменной sum.

С текстовыми данными также нет ничего сложного.

String text1 = "Привет, ";

String text2 = "Мир!";

String text;

text = text1 + text2;

В данном случае мы объявили 3 текстовые переменные. Переменным text1 и text2 присвоили начальные значения. Переменной text присвоили значение суммы переменных text1 и text2. Полученное значение - "Привет, Мир!". В данном случае объединение значений переменных, а точнее текстовых данных, называется конкатенацией. В операторе System.out.println() объединение данных для вывода, в том числе данных разных типов, называется конкатенацией.

Операторы - и * вычитание и умножение

Работают только с числовыми типами данных. Аналогично оператору сложения. Если объявить, например, целочисленные переменные и задать им значения

int chislo1 = 4;

int chislo2 = 5;

int raznost = chislo2 - chislo1;

int proisvedenie = chislo1 * chislo2;

то соответственно значение переменной raznost будет 1, значением переменной proisvedinie будет 20.

В данном примере мы объявили 2 переменных raznost и proisvedenie и сразу присвоили им не чисто числовые значения, а значения, равные выражениям - разности переменных и произведению переменных. Это в Java также не возбраняется.

Оператор / деление

Здесь всё аналогично сложению, вычитанию и умножению, но стоит особо отметить один момент.

Если объявить переменные

int chislo1 = 2;

int chislo2 = 8;

int chastnoe = chislo2 / chislo1;

то понятно, что вычисленное значение переменной chastnoe будет равно 4.

Но если сделать так

int chislo1 = 2;

int chislo2 = 7;

int chastnoe = chislo2 / chislo1;

То, поскольку тип данных int - целочисленный, то результат округления отбросит всю дробную часть, оставив только целую часть числа. Другими словами, округлит значение переменной chastnoe вниз до целых чисел. Соответственно, в результате такой операции значение переменной chastnoe будет равно 3.

Оператор % Деление по модулю

Возьмём данные из предыдущего примера

int chislo1 = 2;

int chislo2 = 7;

int num = chislo2 % chislo1;

В данном случае значение переменной num будет равно остатку от деления. Число 7 на 2 не делится так, чтобы получилось целое число. Но на 2 делится число 6. Разница 7 - 6 = 1. Соответственно, остаток от деления равен 1.

Если поменять цифры,

int chislo1 = 5;

int chislo2 = 12;

int num = chislo2 % chislo1;

то 12 на 5 не делится, но на 5 делится 10. 12 - 10 = 2. Соответственно, значение переменной num - остаток от деления равно 2.

Инкремент ++ и декремент --

Работают следующим образом

Если, например

int a = 7;

то выражение a++; увеличивает значение переменной a на единицу. Результат будет таким же как после исполнения кода a = a + 1;

Соответственно после исполнения кода

int a = 7;

a++;

значение переменной a будет равно 8.

Декремент работает аналогично, уменьшая значение переменной на единицу. То есть после исполнения кода

int b = 5;

b--;

значение переменной b будет равно 4. Тот же самый результат можно получить исполнением кода b = b - 1;

В основном инкремент и декремент используются в циклах, которые будут описаны в следующих уроках.

Теперь для закрепления материала давайте на практике наглядно посмотрим как работают все арифметические операции.

Создадим новый класс с именем Arifm

class Arifm

{

}

Внутри фигурных скобок класса Arifm объявим главный метод main

public static void main (String[] args)

{

}

Внутри фигурных скобок метода main объявим 3 переменные:

int chislo1 = 12;

int chislo2 = 4;

int result;

Для наглядности выведем значения этих переменных на экран:

System.out.println("Значение переменной chislo1 " + chislo1);

System.out.println("Значение переменной chislo2 " + chislo2);

Далее переменной result будем поочередно присваивать значения, равные результатам арифметических операций с переменными chislo1 и chislo2 и выводить значение переменной result на экран:

result = chislo1 + chislo2;

System.out.println("Результат сложения значений переменных chislo1 и chislo2 равен " + result);

result = chislo1 - chislo2;

System.out.println("Результат вычитания значения переменной chislo2 из значения переменной chislo1 равен " + result);

result = chislo1 * chislo2;

System.out.println("Результат умножения значений переменных chislo1 и chislo2 равен " + result);

result = chislo1 / chislo2;

System.out.println("Результат деления значения переменной chislo1 на значение переменной chislo2 равен " + result);

Теперь для наглядности демонстрации выполнения оператора % - деления по модулю изменим значение переменной chislo2

chislo2 = 7;

result = chislo1 % chislo2;

System.out.println("Остаток от деления по модулю значения переменной chislo1 на значение переменной chislo2 равен значению переменной result " + result);

Теперь применим к переменной result операцию инкремента

result++;

и выведем на экран её новое значение

System.out.println("Значение переменной result после применения операции инкремента равно " + result);

Теперь применим к переменной result операцию декремента

result--;

и выведем на экран её новое значение

System.out.println("Значение переменной result после применения операции декремента равно " + result);

Сохраним файл под именем Arifm.java

Далее компилируем командой javac Arifm.java и запускаем командой java Arifm

Результат выполнения

-2

Теперь вернёмся к конкатенации строк. Продемонстрируем на практике работу нашего ранее описанного примера.

Создадим новый класс с именем Stroki

class Stroki

{

}

Внутри фигурных скобок класса Stroki объявим главный метод main

public static void main (String[] args)

{

}

Внутри фигурных скобок метода main объявим 2 переменные:

String text1 = "Привет, ";

String text2 = "Мир!";

Выведем на экран их начальные значения:

System.out.println("Начальное значение переменной text1 " + text1);

System.out.println("Начальное значение переменной text2 " + text2);

Теперь объявим третью переменную и присвоим ей следующее значение:

String text = text1 + text2;

Выведем на экран её значение:

System.out.println("Значение переменной text " + text);

Выводы:

  • Для присвоения значений переменным и константам используется оператор присвоения = Знак равенства == выполняет другую роль в Java.
  • Переменным и константам можно присваивать простые значения любых типов данных, значения других переменных, значения сложных выражений.
  • Оператор сложения + работает с числовыми и текстовыми типами данных. При работе с числовыми типами данных результатом применения оператора будет сумма значений. При работе с текстовыми типами данных результатом применения оператора будет объединённая строка.
  • Операторы вычитания - , умножения * , деления / и деления по модулю % работают только с числовыми типами данных.
  • После применения к переменной числового типа данных (в том числе типа float) операции инкремента/декремента значение переменной увеличивается/уменьшается на 1.

Ссылка на предыдущий урок

Ссылка на следующий урок

Ссылка на содержание курса