Читать «Java 7 (Наиболее полное руководство)» онлайн - страница 29
Ильдар Шаукатович Хабибуллин
b += a += b += 7
получим 20. Хотя операции присваивания выполняются справа налево и после первой, самой правой, операции значение b становится равным 12, но в последнем, левом, присваивании участвует старое значение b, равное 5. А в результате двух последовательных вычислений
a += b += 7; b += a;
получим 27, поскольку во втором выражении участвует уже новое значение переменной b, равное 12.
Большинство компиляторов C++ в обоих случаях вычислят 27.
Выражения могут иметь сложный и запутанный вид. В таких случаях возникает вопрос о приоритете операций, т. е. о том, какие операции будут выполнены в первую очередь. Естественно, умножение и деление производится раньше сложения и вычитания. Остальные правила перечислены в следующем разделе.
Порядок вычисления выражения всегда можно отрегулировать скобками, скобок можно ставить сколько угодно. Но здесь важно соблюдать "золотую середину". При большом количестве скобок снижается наглядность выражения и легко ошибиться в расстановке скобок. Если выражение со скобками корректно, то компилятор может отследить только парность скобок, но не правильность их расстановки.
Приоритет операций
Операции перечислены в порядке убывания приоритета. Операции на одной строке имеют одинаковый приоритет.
1. Постфиксные операции ++ и —.
2. Префиксные операции ++ и --, дополнение ~ и отрицание !.
3. Приведение типа (тип).
4. Умножение *, деление / и взятие остатка %.
5. Сложение + и вычитание -.
6. Сдвиги: <<, >>, >>>.
7. Сравнения: >, <, >=, <=.
8. Сравнения: ==, !=.
9. Побитовая конъюнкция — &.
10. Побитовое исключающее ИЛИ — л.
11. Побитовая дизъюнкция — |.
12. Конъюнкция — &&.
13. Дизъюнкция — | |.
14. Условная операция — ?:.
15. Присваивания: =, +=, -=, *=, /=, %=, &=, л=, |=, <<=, >>=, >>>=.
Здесь перечислены не все операции языка Java, список будет дополняться по мере изучения новых операций.
В Java нет операции "запятая", но
Операторы
Как вы знаете, любой алгоритм, предназначенный для выполнения на компьютере, можно разработать, используя только линейные вычисления, разветвления и циклы.
Записать его можно в разных формах: в виде блок-схемы, на псевдокоде, на обычном языке, как мы записываем кулинарные рецепты, или как-нибудь еще.
Всякий язык программирования должен иметь средства записи алгоритмов. Они называются
Обычно состав операторов языка программирования шире: для удобства записи алгоритмов в язык включаются несколько операторов цикла, оператор варианта, операторы перехода, операторы описания объектов.
Набор операторов языка Java включает:
□ операторы описания переменных и других объектов (были рассмотрены ранее);
□ операторы-выражения;
□ операторы присваивания;
□ условный оператор if;