- Java произведение двух чисел
- Приоритет арифметических операций
- Ассоциативность операций
- Операции с числами с плавающей точкой
- Упражнения на Java: отображение произведения двух чисел
- Упражнения на Java: вывод суммы, умножения, вычитания, деления и остатка двух чисел
- Основные операции в Java
- Арифметические операции
- Операция вычитания:
- Операция умножения:
- Операция деления:
- Операции сравнения
- Логический оператор ^ (исключения)
- Комментарии ( 0 ):
Java произведение двух чисел
Большинство операций в Java аналогичны тем, которые применяются в других си-подобных языках. Есть унарные операции (выполняются над одним операндом), бинарные — над двумя операндами, а также тернарные — выполняются над тремя операндами. Операндом является переменная или значение (например, число), участвующее в операции. Рассмотрим все виды операций.
В арифметических операциях участвуют числа. В Java есть бинарные арифметические операции (производятся над двумя операндами) и унарные (выполняются над одним операндом). К бинарным операциям относят следующие:
- + операция сложения двух чисел:
int a = 10; int b = 7; int c = a + b; // 17 int d = 4 + b; // 11
int a = 10; int b = 7; int c = a - b; // 3 int d = 4 - a; // -6
int a = 10; int b = 7; int c = a * b; // 70 int d = b * 5; // 35
int a = 20; int b = 5; int c = a / b; // 4 double d = 22.5 / 4.5; // 5.0
При делении стоит учитывать, что если в операции участвуют два целых числа, то результат деления будет округляться до целого числа, даже если результат присваивается переменной float или double:
double k = 10 / 4; // 2 System.out.println(k);
Чтобы результат представлял число с плавающей точкой, один из операндов также должен представлять число с плавающей точкой:
double k = 10.0 / 4; // 2.5 System.out.println(k);
int a = 33; int b = 5; int c = a % b; // 3 int d = 22 % 4; // 2 (22 - 4*5 = 2)
Также есть две унарные арифметические операции, которые производятся над одним числом: ++ (инкремент) и — (декремент). Каждая из операций имеет две разновидности: префиксная и постфиксная:
- ++ (префиксный инкремент) Предполагает увеличение переменной на единицу, например, z=++y (вначале значение переменной y увеличивается на 1, а затем ее значение присваивается переменной z)
int a = 8; int b = ++a; System.out.println(a); // 9 System.out.println(b); // 9
int a = 8; int b = a++; System.out.println(a); // 9 System.out.println(b); // 8
int a = 8; int b = --a; System.out.println(a); // 7 System.out.println(b); // 7
int a = 8; int b = a--; System.out.println(a); // 7 System.out.println(b); // 8
Приоритет арифметических операций
Одни операции имеют больший приоритет, чем другие, и поэтому выполняются вначале. Операции в порядке уменьшения приоритета:
++ (постфиксный инкремент), — (постфиксный декремент)
++ (префиксный инкремент), — (префиксный декремент)
* (умножение), / (деление), % (остаток от деления)
Приоритет операций следует учитывать при выполнении набора арифметических выражений:
int a = 8; int b = 7; int c = a + 5 * ++b; System.out.println(c); // 48
Вначале будет выполняться операция инкремента ++b , которая имеет больший приоритет — она увеличит значение переменной b и возвратит его в качестве результата. Затем выполняется умножение 5 * ++b , и только в последнюю очередь выполняется сложение a + 5 * ++b
Скобки позволяют переопределить порядок вычислений:
int a = 8; int b = 7; int c = (a + 5) * ++b; System.out.println(c); // 104
Несмотря на то, что операция сложения имеет меньший приоритет, но вначале будет выполняться именно сложение, а не умножение, так как операция сложения заключена в скобки.
Ассоциативность операций
Кроме приоритета операции отличаются таким понятием как ассоциативность . Когда операции имеют один и тот же приоритет, порядок вычисления определяется ассоциативностью операторов. В зависимости от ассоциативности есть два типа операторов:
- Левоассоциативные операторы, которые выполняются слева направо
- Правоассоциативные операторы, которые выполняются справа налево
Так, некоторые операции, например, операции умножения и деления, имеют один и тот же приоритет. Какой же тогда будет результат в выражении:
Стоит нам трактовать это выражение как (10 / 5) * 2 или как 10 / (5 * 2) ? Ведь в зависимости от трактовки мы получим разные результаты.
Все арифметические операторы (кроме префиксного инкремента и декремента) являются левоассоциативными, то есть выполняются слева направо. Поэтому выражение 10 / 5 * 2 необходимо трактовать как (10 / 5) * 2 , то есть результатом будет 4.
Операции с числами с плавающей точкой
Следует отметить, что числа с плавающей точкой не подходят для финансовых и других вычислений, где ошибки при округлении могут быть критичными. Например:
double d = 2.0 - 1.1; System.out.println(d);
В данном случае переменная d будет равна не 0.9, как можно было бы изначально предположить, а 0.8999999999999999. Подобные ошибки точности возникают из-за того, что на низком уровне для представления чисел с плавающей точкой применяется двоичная система, однако для числа 0.1 не существует двоичного представления, также как и для других дробных значений. Поэтому в таких случаях обычно применяется класс BigDecimal, который позволяет обойти подобные ситуации.
Упражнения на Java: отображение произведения двух чисел
Напишите программу на Java, которая принимает два числа в качестве входных данных и отображает произведение двух чисел.
Тестовые данные:
Введите первое число: 25
Введите второе число: 5
Иллюстрированная презентация:
Пример решения:
import java.util.Scanner; public class Exercise5 < public static void main(String[] args) < Scanner in = new Scanner(System.in); System.out.print("Input first number: "); int num1 = in.nextInt(); System.out.print("Input second number: "); int num2 = in.nextInt(); System.out.println(num1 + " x " + num2 + " output">Введите первое число: 25 Введите второе число: 5 25 х 5 = 125
Блок — схема:
Пример решения:
Блок — схема:
Редактор кода Java:
Внесите свой код и комментарии через Disqus.
Каков уровень сложности этого упражнения?
Упражнения на Java: вывод суммы, умножения, вычитания, деления и остатка двух чисел
Напишите Java-программу для печати суммы (сложения), умножения, вычитания, деления и остатка двух чисел.
Тестовые данные:
Введите первое число: 125
Введите второе число: 24
Иллюстрированная презентация:
Пример решения:
import java.util.Scanner; public class Exercise6 < public static void main(String[] args) < Scanner in = new Scanner(System.in); System.out.print("Input first number: "); int num1 = in.nextInt(); System.out.print("Input second number: "); int num2 = in.nextInt(); System.out.println(num1 + " + " + num2 + " =" + (num1 + num2)); System.out.println(num1 + " - " + num2 + " =" + (num1 - num2)); System.out.println(num1 + " x " + num2 + " =" + (num1 * num2)); System.out.println(num1 + " / " + num2 + " =" + (num1 / num2)); System.out.println(num1 + " mod " + num2 + " output">Введите первое число: 125 Введите второе число: 24 125 + 24 = 149 125 - 24 = 101 125 х 24 = 3000 125/24 = 5 125 мод 24 = 5
Блок — схема:
Пример решения:
import java.util.Scanner; public class Main < public static void main(String[] args) < Scanner scanner = new Scanner(System.in); System.out.println("Input the first number: "); int n1 = scanner.nextInt(); System.out.println("Input the second number: "); int n2 = scanner.nextInt(); int sum = n1 + n2; int minus = n1 - n2; int multiply = n1 * n2; int subtract = n1 + n2; int divide = n1 / n2; int rnums = n1 % n2; System.out.printf("Sum = %d\nMinus = %d\nMultiply = %d\nSubtract = %d\nDivide = %d\nRemainderOf2Numbers = %d\n ", sum, minus, multiply, subtract, divide, rnums); >>
Введите первое число: 6 Введите второе число: 5 Сумма = 11 Минус = 1 Умножить = 30 Вычесть = 11 Разделить = 1 RemainderOf2Numbers = 1
Блок — схема:
Редактор кода Java:
Внесите свой код и комментарии через Disqus.
Каков уровень сложности этого упражнения?
Основные операции в Java
Все представленные ниже операции на Java пишутся внутри конструкции. Данная конструкция автоматически генерируется NetBeans-ом, при создании нового проекта, подставляя в названии пакета и класса, заданное автором имя проекта, например Compare.
Арифметические операции
В арифметических операциях на Java участвуют числовые типы данных. Для написания кода нам потребуются наиболее часто используемые типы переменных: int / double и арифметические операторы.
Произвести арифметическую операцию сложения с двумя числами: 20 и 10.
Поместим эти числа в переменные a и b, дальше в арифметических операциях будут задействованы только переменные, ссылающиеся на эти значения.
int a = 20; // объявление и инициализация переменной a
int b = 10; // int – объявление переменной с целым числом
Создадим ещё одну переменную под названием result, где будет храниться результат сложения двух чисел.
int result = a + b; // «+» – оператор сложения
Для проверки, все ли мы сделали правильно, выведем результат в консоль. Там мы должны увидеть число 30.
// в консоль выведется — Сумма: 30
System.out.println(«Сумма: » + result); // «+» – оператор объединения
Операция вычитания:
Операция умножения:
Операция деления:
Операции сравнения
Создадим переменные и присвоим им значения, эти два числа мы и будем сравнивать между собой. Результаты сравнения выведем в консоль.
int a = 7;
int b = 8;
int c = 7;
Является ли верным утверждение, что a < b(меньше)?
System.out.println(a + » < " + b + " code">System.out.println(a + » > » + b + » code»> System.out.println(a + » == » + c + » code»> boolean b_1 = true;
boolean b_2 = false;
Логический оператор && (И) выведет в консоли true && false = false
System.out.println(b_1 + » && » + b_2 + » code»> 1 * 0 = 0
Логический оператор || (ИЛИ) выведет в консоли true || false = true
System.out.println(b_1 + » || » + b_2 + » code»> 1 + 0 = 1
Логический оператор ^ (исключения)
System.out.println(b_1 + » ^ » + b_2 + » code»> System.out.println(«!» + b_1 + » code»> int a = 4;
int b = 7;
Преобразуем эти числа в двоичный код (состоящий только из нулей и единиц), применяя метод toBinaryString.
String s_a = Integer.toBinaryString(a);
String s_b = Integer.toBinaryString(b);
Результат выведем в консоль.
Создано 11.03.2019 10:10:00
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
- Кнопка:
Она выглядит вот так: - Текстовая ссылка:
Она выглядит вот так: Как создать свой сайт - BB-код ссылки для форумов (например, можете поставить её в подписи):
Комментарии ( 0 ):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2023 Русаков Михаил Юрьевич. Все права защищены.