Выражения являются важными строительными блоками любой программы Java, обычно создаются для создания нового значения, хотя иногда выражение присваивает значение переменной. Выражения создаются с использованием значений, переменных, операторов и вызовов методов.
Разница между операторами Java и выражениями
С точки зрения синтаксис языка Java, выражение сродни предложению на английском языке, которое отображает конкретное значение. При правильной пунктуации он иногда может стоять сам по себе, хотя также может быть частью предложения. Некоторые выражения приравниваются к операторам сами по себе (путем добавления точки с запятой в конце), но чаще они составляют часть оператора.
Например,
(a * 2)
– это выражение.
b + (a * 2);Оператор однако не обязательно включать несколько выражений. Вы можете превратить простое выражение в оператор, добавив точку с запятой:
(a * 2);Типы выражений
Хотя выражение часто дает результат, это не всегда. В Java есть три типа выражений:
- Те, которые производят значение, т. Е. Результат из
(1 + 1)
- Те, которые присваивают переменную, например
(v = 10)
- Те, которые не дают результата, но могут иметь «побочный эффект», потому что выражение может включать в себя широкий спектр элементов, таких как вызовы методов или операторы увеличения, которые изменяют состояние (т. е. память) программы.
Примеры выражений
Вот несколько примеров различных типов выражений.
Выражения, которые производят значение
Выражения, которые производят значение, используют широкий спектр арифметических операторов, операторов сравнения и условных операторов Java. Например, арифметические операторы включают +, *,/, , ++ и%. Некоторые условные операторы – это?, ||, а операторы сравнения – . Полный список см. В спецификации Java.
Эти выражения производят значение:
3/2
data-type = “code”>
5% 3
data-type = “code”>
pi + (10 * 2)
data-type = “code”>
Обратите внимание на скобки в последнем выражении. Это заставляет Java сначала вычислить значение выражения в круглых скобках (точно так же, как арифметика, которую вы изучали в школе), а затем завершить остальные вычисления.
Выражения, назначающие переменную
Эта программа содержит множество выражений (выделенных жирным курсивом), каждое из которых присваивает значение.
int secondsInDay = 0 ;
int
daysInWeek = 7 ;
int
hoursInDay = 24 ;
int
minutesInHour = 60 ;
int
secondsInMinute = 60 ;
логическое
calculateWeek = true ;
secondsInDay = secondsInMinute * minutesInHour * hoursInDay ; //7
System.out.println(
);
if (
calculateWeek == true )
{
System.out.println (
"Количество секунд в неделе:" + secondsInDay * daysInWeek );
}
Все выражения в первых шести строках приведенного выше кода используют оператор присваивания для присвоения значения справа переменная слева.
Строка, обозначенная//7, представляет собой выражение, которое может стоять само по себе как утверждение. Он также показывает, что выражения можно создавать с помощью более чем одного оператора. Конечное значение переменной secondsInDay является кульминацией оценки каждого выражения по очереди (т. Е. SecondsInMinute * minutesInHour = 3600, за которым следует 3600 * hoursInDay = 86400).
Выражения без результата
Хотя некоторые выражения не дают результата, они могут иметь побочный эффект, который возникает, когда выражение изменяет значение любого из своих операндов.
Например, считается, что определенные операторы всегда производят побочный эффект, такой как присваивание, увеличение и уменьшение операторы. Рассмотрим это:
int product = a * b;
data-type = “code”>
Единственная переменная, измененная в этом выражении, – это продукт ; a и b не изменяются. Это называется побочным эффектом.