You are here: Home » Учебник » Вычисление выражений и приоритет операторов

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

Ключевой момент: выражения 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 следующие арифметические выражения?

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

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

wp-puzzle.com logo