Java. Урок 11. Оператор присваивания

  14 января 2013  Автор статьи: lordrp 

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

1
2
3
переменная = значение;//синтаксис
int a;//объявили переменную
a = 7;//положили в переменную а 7

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

1
2
3
4
int a;
a = 7;
int b;
b = a;

По умолчанию, в числовых переменных содержится ноль.

Кроме этого есть возможность сокращать некоторые выражения с помощью оператора присваивания:

1
2
3
4
5
6
7
8
9
10
a = a + 2;// обычная запись
a +=2;// сокращенная запись
a = a - 2;// обычная запись
a -=2;// сокращенная запись
a = a * 2;// обычная запись
a *=2;// сокращенная запись
a = a / 2;// обычная запись
a /=2;// сокращенная запись
a = a % 2;// обычная запись
a %=2;// сокращенная запись

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

1
2
int a = 0;
double b = (int) a;

Кроме этого, иногда вы сможете встретить термины инициализация переменной и объявление:

1
2
int a ;//объявление
int b = 0;//инициализация

В завершении статьи, хотел рассказать про операторы инкремента и декремента. Данные операторы являются сокращением к увеличению и уменьшению некоторого значения на 1, записываются они так:

1
2
3
4
x++;//инкремент
x--;декремент
++x;//инкремент
--x;декремент

В чем разница между расположением плюсов и минусов? Если знаки расположены справа, это значит, что сначала произойдет подсчет некоторого выражения, где они используются, а затем значение изменится на 1, а если слева, то сначала изменится значение, а затем произойдет подсчет, например:

1
2
3
int x = 0;
int a = 2 *x++;//a равно 0, а x единице
int b = 2 * --x;//b равно 0 и x 0

  • EnderGenom

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

    • http://cybern.ru/ lordrp

      Как в обычной математике.

  • Алексей

    2*--x=2*(0-1)=-2 не?

    • http://cybern.ru/ lordrp

      Нет, строчкой выше x стал 1.

Научиться программировать