Основные структуры языка Java

Интересно, что эти операции 'можно записать и перед переменной: ++i, — j. Разница проявится только в выражениях: при первой формe записи (постфиксной) в выражении участвует старое значение переменной и только потом происходит увеличение или уменьшение ее значения. При второй форме записи (префиксной) сначала изменится переменная и ее новое значение будет участвовать в выражении.

Приведен

ие типов

Результат арифметической операции имеет тип int, кроме того случая, когда один из операндов типа long. В этом случае результат будет типа long.

Перед выполнением арифметической операции всегда происходит повышение типов byte, short, char. Они преобразуются в тип int, а может быть, и в тип long, если другой операнд типа long. Операнд типа int повышается до типа long, если другой операнд типа long. Конечно, числовое значение операнда при этом не меняется.

В таких случаях следует выполнить явное приведение типа. В данном случае это будет сужение типа int до типа short. Оно осуществляется операцией явного приведения, которая записывается перед приводимым значением в виде имени типа в скобках. Определение

short b1=1, b2=2;

short k = (short)(b1 + b2);

будет верным.

Если результат целой операции выходит за диапазон своего типа int или long, то автоматически происходит приведение по модулю, равному длине этого диапазона, и вычисления продолжаются, переполнение никак не отмечается.

В языке Java нет целочисленного переполнения.

Операции сравнения

В языке Java шесть обычных операций сравнения целых чисел по величине:

· больше >;

· меньше <;

· больше или равно >=;

· меньше или равно <=;

· равно ==;

· не равно !=.

Для записи сложных сравнений следует привлекать логические операции. Например, в вычислениях часто приходится делать проверки вида а < х < b. В данном случае следует написать выражение (а < х) && (х < b), причем здесь скобки можно опустить, написать просто а < х && х < b.

Вещественные типы

Вещественных типов в Java два: float и double. Они характеризуются разрядностью, диапазоном значений и точностью представления, отвечающим стандарту IEEE 754-1985 с некоторыми изменениями. К обычным вещественным числам добавляются еще три значения.

1. Положительная бесконечность, выражаемая константой POSITIVE_INFINITY и возникающая при переполнении положительного значения, например, в результате операции умножения 3.0*6е307.

2. Отрицательная бесконечность NEGATIVE_INFINITY.

3. "Не число", записываемое константой NaN (Not a Number) и возникающее при делении вещественного числа на нуль или умножении нуля на бесконечность.

Кроме того, стандарт различает положительный и отрицательный нуль, возникающий при делении на бесконечность соответствующего знака, хотя сравнение 0.0 == -0.0 дает true. Операции с бесконечностями выполняются по обычным математическим правилам.

Во всем остальном вещественные типы — это обычные, вещественные значения, к которым применимы все арифметические операции и сравнения, перечисленные для целых типов. Характеристики вещественных типов приведены в табл. 1.4.

В языке Java взятие остатка от деления %, инкремент ++ и декремент — применяются и к вещественным типам.

Таблица 3. Вещественные типы

Тип

Разрядность

Диапазон

Точность

float

4

3,4е-38 < |х| < 3,4е38

7—8 цифр

double

8

1,7е-308<|х|<1,7е308

17 цифр

Поскольку к вещественным типам применимы все арифметические операции и сравнения, целые и вещественные значения можно смешивать в операциях. При этом правило приведения типов дополняется такими условиями:

· если в операции один операнд имеет тип double, то и другой приводится к типу double;

· если один операнд имеет тип float, то и другой приводится к типу float;

· в противном случае действует правило приведения целых значений.

Условная операция

Эта своеобразная операция имеет три операнда. Вначале записывается произвольное логическое выражение, т. е. имеющее в результате true или false, затем знак вопроса, потом два произвольных выражения, разделенных двоеточием, например,

х < 0 ? 0 : х

х > у ? х — у : х + у

Условная операция выполняется так. Сначала вычисляется логическое выражение. Если получилось значение true, то вычисляется первое выражение после вопросительного знака ? и его значение будет результатом всей операции. Последнее выражение при этом не вычисляется. Если же получилось значение false, то вычисляется только последнее выражение, его значение будет результатом операции. Это, например, позволяет написать n == 0 ? да : m / n не опасаясь деления на нуль.

Приоритет операций

Операции перечислены в порядке убывания приоритета. Операции на одной строке имеют одинаковый приоритет.

1. Постфиксные операции ++ и —.

2. Префиксные операции ++ и —, дополнение ~ и отрицание !.

3. Приведение типа (тип).

4. Умножение *, деление / и взятие остатка %.

5. Сложение + и вычитание -.

6. Сдвиги <<, >>, >>>.

7. Сравнения >, <, >=, <=.

8. Сравнения ==, !=.

9. Побитовая конъюнкция &.

10. Побитовое исключающее ИЛИ ^.

11. Побитовая дизъюнкция | .

12. Конъюнкция &&.

13. Дизъюнкция | | .

14. Условная операция ?: .

15. Присваивания =, +=, -=, *=, /=, %=, &=, ^=, |=, <<, >>, >>>.

Операторы

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

Набор операторов языка Java включает:

· операторы описания переменных и других объектов;

· операторы-выражения;

· операторы присваивания;

· условный оператор if;

· три оператора цикла while, do-while, for;

· оператор варианта switch;

· Операторы перехода break, continue и return;

· блок {};

· пустой оператор — просто точка с запятой.

В языке Java нет оператора goto.

Всякий оператор завершается точкой с запятой. Точка с запятой в Java не разделяет операторы, а является частью оператора (В Pascal’е наоборот).

Блоки

Блок заключает в себе нуль или несколько операторов с целью использовать их как один оператор в тех местах, где по правилам языка можно записать только один оператор. Блоки операторов часто используются для ограничения области действия переменных и просто для улучшения читаемости текста программы.

Условный оператор

Условный оператор (if-then-else) в языке Java записывается так:

Страница:  1  2  3  4  5  6  7  8  9 


Другие рефераты на тему «Программирование, компьютеры и кибернетика»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы