Skip to content

Учебник: программирование на Java

Бесплатное онлайн обучение программированию на языке Java

Menu
  • Учебник
  • Блог
  • Карта сайта
Menu

Вычисление выражений и приоритет операторов

Posted on 08.06.2017 by Java 9

Ключевой момент: выражения Java вычисляются также как и арифметические выражения.

Написание арифметических выражений в Java включает в себя простой перевод арифметических выражений с использованием операторов Java. Например, арифметическое выражение

может быть переведено в выражение Java так:

(3 + 4 * x) / 5 – 10 * (y - 5) * (a + b + c) / x + 9 * (4 / x + (9 + x) / y)

Вычисление выражений и правила приоритетов операторов

Хотя «за сценой» у Java свой собственный путь вычисления выражений, результат выражения Java и соответствующего ему арифметического выражения одинаковый. Поэтому вы можете безопасно применять правила арифметики для вычисления выражения Java. Сначала выполняются операторы, содержащиеся в парах круглых скобок. Скобки могут быть вложенными, и в этом случае сначала вычисляются выражение во внутренних круглых скобках. Когда в выражении используется более одного оператора, для определения порядка оценки используется следующее правило приоритета оператора.

  • Умножение, деление и нахождение остатка от деления применяются первыми. Если выражение содержит несколько умножений, делений и нахождений остатка, они применяются слева направо.
  • Операторы сложения и вычитания применяются последними. Если выражение содержит несколько операторов сложения и вычитания, они применяются слева направо.

Вот пример, как вычисляется выражение:

Следующая программа преобразовывает градусы Фаренгейта в градусы Цельсия используя следующую формулу:

градусы Цельсия = (5 / 9) * (градусы Фаренгейта - 32)
import java.util.Scanner;

public class FahrenheitToCelsius {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        System.out.print("Введите градусы в Фаренгейтах: ");
        double fahrenheit = input.nextDouble();

        // Конвертация Фаренгейтов в Цельсии
        double celsius = (5.0 / 9) * (fahrenheit - 32);
        System.out.println("Фаренгейт " + fahrenheit + " это "
                + celsius + " в градусах Цельсия");
    }
}

Листинг с нумерацией строк:

Трассировка программы:

Будьте внимательны, как применяете деление. Деление двух целых чисел даёт в Java целое число. 5 / 9 из формулы переводится на строке 11 в 5.0 / 9, а не в 5 / 9. Поскольку в Java 5 / 9 даёт 0.

Проверь себя:

  1. Как бы вы записали в Java следующие арифметические выражения?

1 thought on “Вычисление выражений и приоритет операторов”

  1. Алексей:
    26.12.2018 в 02:36

    А будут какието проверочные цифры к заданию?

    Ответить

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

wp-puzzle.com logo




Свежие записи

  • Как установить Java 10 (JDK 10, JRE 10) в Linux
  • Как установить Java 10 (JDK 10, JRE 10) в Windows
  • Почему в программах Java вместо круглых цифр появляются девятки (9999999999999)?
  • Как установить NetBeans 9 для разработки на JDK 9
  • Как установить Java 9 (JDK 9, JRE 9) в Windows

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

  • м к записи Чтение ввода с консоли
  • Java 9 к записи Чтение ввода с консоли
  • Михаил к записи Чтение ввода с консоли
  • Михаил к записи Упражнения по программированию
  • Михаил к записи Упражнения по программированию

Архивы

  • Июнь 2018
  • Апрель 2018
  • Январь 2018
  • Декабрь 2017
  • Сентябрь 2017
  • Июль 2017
  • Июнь 2017
  • Май 2017




© 2023 Учебник: программирование на Java | Powered by Minimalist Blog WordPress Theme