Spec-Zone .ru
спецификации, руководства, описания, API
След: Изучение Языка Java
Урок: Основы Языка
Выражения, Операторы, и Блоки
Домашняя страница > Изучение Языка Java > Основы языка

Выражения, Операторы, и Блоки

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

Выражения

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

int cadence = 0;
anArray[0] = 100;
System.out.println("Element 1 at index 0: " + anArray[0]);

int result = 1 + 2; // result is now 3
if (value1 == value2) 
    System.out.println("value1 == value2");

Тип данных значения, возвращенного выражением, зависит от элементов, используемых в выражении. Выражение cadence = 0 возвраты int потому что оператор присваивания возвращает значение того же самого типа данных как его левый операнд; в этом случае, cadence int. Как можно видеть от других выражений, выражение может возвратить другие типы значений также, такой как boolean или String.

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

 
1 * 2 * 3

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

x + y / 100    // ambiguous

Можно определить точно, как выражение будет оценено, используя сбалансированную круглую скобку: (и). Например, чтобы сделать предыдущее однозначное выражение, Вы могли записать следующее:

 
(x + y) / 100  // unambiguous, recommended

Если Вы явно не указываете на порядок на операции, которые будут выполняться, порядок определяется приоритетом, присвоенным операторам в использовании в пределах выражения. Операторы, у которых есть более высокий приоритет, оцениваются сначала. Например, у оператора подразделения есть более высокий приоритет, чем делает оператор сложения. Поэтому, следующие два оператора эквивалентны:

x + y / 100 
x + (y / 100) // unambiguous, recommended

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

Операторы

Операторы примерно эквивалентны предложениям на естественных языках. Оператор формирует полный модуль из выполнения. Следующие типы выражений могут быть превращены в оператор, завершая выражение с точкой с запятой (;).

Такие операторы вызывают операторами выражения. Вот некоторые примеры операторов выражения.

// assignment statement
aValue = 8933.234;
// increment statement
aValue++;
// method invocation statement
System.out.println("Hello World!");
// object creation statement
Bicycle myBike = new Bicycle();

В дополнение к операторам выражения есть два других вида операторов: операторы объявления и операторы управления. Оператор объявления объявляет переменную. Вы уже видели много примеров операторов объявления:

// declaration statement
double aValue = 8933.234;

Наконец, операторы управления регулируют порядок, в котором выполняются операторы. Вы узнаете об операторах управления в следующем разделе, Операторах управления

Блоки

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

class BlockDemo {
     public static void main(String[] args) {
          boolean condition = true;
          if (condition) { // begin block 1
               System.out.println("Condition is true.");
          } // end block one
          else { // begin block 2
               System.out.println("Condition is false.");
          } // end block 2
     }
}

Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Вопросы и Упражнения: Операторы
Следующая страница: Вопросы и Упражнения: Выражения, Операторы, и Блоки