РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
600 of 1163 menu

Метод addExact

Метод addExact класса Math выполняет сложение двух чисел и возвращает результат. В отличие от обычного оператора +, этот метод проверяет, не произошло ли переполнение типа. В первый параметр мы передаем первое слагаемое, во второй - второе слагаемое. Если сумма выходит за границы допустимых значений типа int или long, метод выбрасывает исключение ArithmeticException.

Метод имеет две перегрузки: для типа int и для типа long. Это позволяет безопасно складывать числа, не опасаясь незаметного переполнения, которое в обычной арифметике приводит к неверному результату.

Синтаксис

Math.addExact(a, b)

Пример

Давайте сложим два числа в пределах допустимых значений типа int:

public class Main { public static void main(String[] args) { int res = Math.addExact(3, 4); System.out.println(res); } }

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

7

Пример

Давайте сложим два числа типа long:

public class Main { public static void main(String[] args) { long res = Math.addExact(1000000000L, 2000000000L); System.out.println(res); } }

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

3000000000

Пример

Давайте попробуем сложить два числа, сумма которых превышает максимальное значение типа int, и перехватим исключение:

public class Main { public static void main(String[] args) { try { int res = Math.addExact(Integer.MAX_VALUE, 1); System.out.println(res); } catch (ArithmeticException e) { System.out.println("Overflow detected"); } } }

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

"Overflow detected"

Пример

Давайте убедимся, что обычное сложение в этой же ситуации дает неверный результат без всякого предупреждения:

public class Main { public static void main(String[] args) { int res = Integer.MAX_VALUE + 1; System.out.println(res); } }

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

-2147483648

Смотрите также

  • класс Math,
    который содержит математические методы
  • метод multiplyExact,
    который умножает с проверкой переполнения
  • метод negateExact,
    который меняет знак с проверкой переполнения
  • метод incrementExact,
    который увеличивает на единицу с проверкой переполнения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить