Operators that require a single operand are called Unary Operators, in contrast for example to the arithmetic operators that require two. Note that some of these operators also assign a new value to the operand.
Plus and minus unary operators
The plus unary operator is seldom used and indicates that a value is positive. Note that a positive value doesn’t need the plus operator, so the statement below is equivalent to
int result1 = 1:
int result1 = +1; // result1 is 1 System.out.println("result1 = " + result1);
result1 = 1
The minus unary operator is used to negate an expression, as in, it will return the negative value of a positive expression, or viceversa. For example:
int result2 = -result1; // result2 is -1 System.out.println("result2 = " + result2);
result2 = -1
A double plus operator can be used to increment the value of a variable by 1, for example
a++, and a double minus operator can be used to decrement the value of a variable by 1, for example
These 2 operators can be used as a prefix or postfix operator, as in, both
++a will have the same effect on the variable
The following examples show the difference between the prefix and postfix versions:
Example 1: Prefix version
// prefix increment operator int value1 = 0; int result3 = ++value1; // result3 is 1 and value1 is also 1 System.out.println("result3 = " + result3); System.out.println("value1 = " + value1);
result3 = 1 value1 = 1
When using the prefix version, the incremented value of the variable is returned, hence in this case,
result3 has a value of 1.
Example 2: Postfix version
// postfix increment operator int value2 = 0; int result4 = value2++; // result4 is 0 and value2 is 1 System.out.println("result4 = " + result4); System.out.println("value2 = " + value2);
result4 = 0 value2 = 1
When using the postfix version, the original value of the operand is returned, as in, before the increment happens, hence in this case,
result4 has a value of 0.
The same applies to the prefix/postfix versions of the decrement operator.
Logical complement operator
This operator, represented by an exclamation mark (!), inverts the value of a boolean variable.
// logical complement operator boolean value3 = true; boolean result5 = !value3; System.out.println("value3 = " + value3); System.out.println("result5 = " + result5);
value3 = true result5 = false
Note that the original operand isn’t updated, this means that
value3 keeps its original value.