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

Присвоение, Арифметика, и Унарные операторы

Простой Оператор присваивания

Один из наиболее распространенных операторов, с которыми Вы встретитесь, является простым оператором присваивания"=". Вы видели этот оператор в Велосипеде class; это присваивает значение с его правой стороны от него к операнду с его левой стороны от него:

 int cadence = 0;
 int speed = 0;
 int gear = 1;

Этот оператор может также использоваться на объектах присвоить ссылки на объект, как обсуждено в Создании Объектов.

Арифметические Операторы

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

+       additive operator (also used for 
        String concatenation)
-       subtraction operator
*       multiplication operator
/       division operator
%       remainder operator

Следующая программа, ArithmeticDemo, тестирует арифметические операторы.


class ArithmeticDemo {

    public static void main (String[] args){
         
        // result is now 3
        int result = 1 + 2;
        System.out.println(result);

        // result is now 2
        result = result - 1;
        System.out.println(result);

        // result is now 4
        result = result * 2;
        System.out.println(result);

        // result is now 2
        result = result / 2;
        System.out.println(result);

        // result is now 10
        result = result + 8;
        // result is now 3
        result = result % 7;
        System.out.println(result);
    }
}

Можно также объединить арифметические операторы с простым оператором присваивания, чтобы создать составные присвоения. Например, x+=1; и x=x+1; оба постепенно увеличивают значение x 1.

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


class ConcatDemo {
    public static void main(String[] args){
        String firstString = "This is";
        String secondString =
            " a concatenated string.";
        String thirdString =
            firstString+secondString;
        System.out.println(thirdString);
    }
}

К концу этой программы, переменной thirdString содержит "Это - связанная строка.", который печатается к стандартному выводу.

Унарные операторы

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

+       Unary plus operator; indicates 
        positive value (numbers are 
        positive without this, however)
-       Unary minus operator; negates
        an expression
++      Increment operator; increments
        a value by 1
--      Decrement operator; decrements
        a value by 1
!       Logical complement operator; 
        inverts the value of a boolean

Следующая программа, UnaryDemo, тестирует унарные операторы:


class UnaryDemo {

    public static void main(String[] args){
        // result is now 1
        int result = +1;
        System.out.println(result);
        // result is now 0
        result--;
        System.out.println(result);
        // result is now 1 
        result++;
        System.out.println(result);
        // result is now -1
        result = -result;
        System.out.println(result);
        boolean success = false;
        // false
        System.out.println(success);
        // true
        System.out.println(!success);
    }
}

Операторы инкремента/декремента могут быть применены перед (префиксом) или после (постфикса) операнд. Код result++; и ++result; оба закончится в result быть постепенно увеличенным одним. Единственная разница то, что префиксная версия (++result) оценивает к постепенно увеличенному значению, тогда как постфиксная версия (result++) оценивает к исходному значению. Если Вы только выполняете простой инкремент/декремент, он действительно не имеет значения, какую версию Вы выбираете. Но если Вы используете этот оператор в части большего выражения, тот, который Вы выбираете, может сделать значительную разницу.

Следующая программа, PrePostDemo, иллюстрирует префиксный/постфиксный унарный оператор инкремента:


class PrePostDemo {
    public static void main(String[] args){
        int i = 3;
        i++;
        // prints 4
        System.out.println(i);
        ++i;			   
        // prints 5
        System.out.println(i);
        // prints 6
        System.out.println(++i);
        // prints 6
        System.out.println(i++);
        // prints 7
        System.out.println(i);
    }
}

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

Предыдущая страница: Операторы
Следующая страница: Равенство, Реляционные, и Условные Операторы