Главная » Java » Операторы инкремента и декремента Java

0

операторы Инкремента (увеличения значения на единицу) и декремента (уменьшения значения на единицу) записываются соответственно как ++ (плюс плюс) и — (минус минус) и используются только по отношению к числовым переменным или элементам числовых массивов. Выражение i ++ равнозначно; = ; + 1 – за тем исключением, что в первом случае обращение к ; выполняется только один раз. Например, в выражении

++arr[where()] ;

обращение к методу wheге осуществляется только единожды и его результат используется для доступа к элементу массива также только один раз. С другой стороны, выражение

arr[where()] = arr[where()] + 1;

предполагает двукратный вызов метода where: первый раз для определения значения индекса элемента в правой части выражения, а во второй раз – для вычисления индекса левостороннего элемента. Если метод where способен возвращать при каждом вызове различные значения, результаты вычисления двух приведенных выше выражений могут оказаться также совершенно различны. чтобы избежать повторного обращения к методу where, следовало бы сохранить возвращенное им значение во временной переменной (что-то подобное и позволяют делать операторы инкремента и декремента, только в более просто м и лаконичном виде).

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

Рассмотрим пример.

class Incorder {

  public static void main(String[] args){

              int i = 16;

              System.out.println(++i + “ ” + i++ + “ ” + i);

}

}

             

Результат работы программы выглядит так:

17 17 18

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

Операторы ++ и — , применяемые к переменным типа char, позволяют получить следующий или предыдущий символы Unicode соответственно.

Источник: Арнолд, Кен, Гослинг, Джеймс, Холмс, Дэвид. Язык программирования Java. 3-е изд .. : Пер. с англ. – М. : Издательский дом «Вильяме», 2001. – 624 с. : ил. – Парал. тит. англ.

По теме:

  • Комментарии