操作符
countChars方法使用了几种操作符,包括=、!=、++和+:
import java.io.*;
public class Count {
public static void countChars(Reader in)
throws IOException
{
int count = 0;
while (in.read() != -1)
count++;
System.out.println("Counted " +
count + " chars.");
}
// ... main method omitted ...
}
操作符可以在一个、两个或三个操作数上执行一定的功能。要
求一个操作数的操作符称为一元操作符。例如,++是使操作数加
1的一元操作符。需要两个操作数的操作符称为二元操作符。
如,=是一个从右到左赋值的二元操作符。三元操作符是需要三
个操作数的操作符。Java语言只有一个三元操作符 - ?:,是if-else
的缩写。
Java的一元操作符可以用前缀或后缀。前缀如下所示:
operator op
后缀如下所示:
op operator
二元操作符在两个操作数中间:
op1 operator op2
三元操作符的用法如下:
expr ? op1 : op2
除了执行操作,操作符也返回值。返回值和它的类型取决于操
作符和它的操作数的类型。例如,算术操作符返回算术运算的
结果。算术操作符的返回结果数据类型依赖于它的操作数的
类型:如果把两个整数相加,结果是整数。
Java的操作符可以分为以下几类:
算术操作符
Java语言支持所有浮点数和整数的各种算术运算,包括+、-、
*、/,%为取余操作符。下表为一元操作符:
操作符 |
用法 |
描述 |
+ |
op1 + op2 |
把op1和op2 相加 |
- |
op1 - op2 |
从op1减去op2 |
* |
op1 * op2 |
op1乘以op2 |
/ |
op1 / op2 |
op1除以op2 |
% |
op1 % op2 |
op1被op2除的余 |
+和-也可以作为一元操作符:
操作符 |
用法 |
描述 |
+ |
+op |
如果是byte、short或char,就提升为int |
- |
-op |
取负值 |
++和--的用法如下:
操作符 |
用法 |
描述 |
++ |
op++ |
给op加1,在加1前赋值 |
++ |
++op |
给op加1,在加1后赋值 |
-- |
op-- |
给op减1,在减1前赋值 |
-- |
--op |
给op减1,在减1后赋值 |
关系和条件操作符
关系操作符:
操作符 |
用法 |
返回真,如果... |
> |
op1 > op2 |
op1 大于op2 |
>= |
op1 >= op2 |
op1大于或等于op2 |
< |
op1 < op2 |
op1 小于 op2 |
<= |
op1 <= op2 |
op1 小于或等于 op2 |
== |
op1 == op2 |
op1 等于op2 |
!= |
op1 != op2 |
op1 不等于op2 |
条件操作符:
操作符 |
用法 |
返回真,如果... |
&& |
op1 && op2 |
op1和op2 都是真,条件性的取op2的值 |
|| |
op1 || op2 |
op1或op2为真,条件性的取op2的值 |
! |
! op |
op 为假 |
& |
op1 & op2 |
op1和op2 都是真,取op1和op2 的值 |
| |
op1 | op2 |
op1或op2为真,取op1和op2 的值 |
移位操作符
操作符 |
用法 |
操作 |
>> |
op1 >> op2 |
右移op1 op2位 |
<< |
op1 << op2 |
左移op1 op2位 |
>>> |
op1 >>> op2 |
右移op1 op2位 (无符号移位) |
& |
op1 & op2 |
位与 |
| |
op1 | op2 |
位或 |
^ |
op1 ^ op2 |
位异或 |
~ |
~op2 |
位余 |
赋值操作符
操作符 |
用法 |
等价于 |
+= |
op1 += op2 |
op1 = op1 + op2 |
-= |
op1 -= op2 |
op1 = op1 - op2 |
*= |
op1 *= op2 |
op1 = op1 * op2 |
/= |
op1 /= op2 |
op1 = op1 / op2 |
%= |
op1 %= op2 |
op1 = op1 % op2 |
&= |
op1 &= op2 |
op1 = op1 & op2 |
|= |
op1 |= op2 |
op1 = op1 | op2 |
^= |
op1 ^= op2 |
op1 = op1 ^ op2 |
<<= |
op1 <<= op2 |
op1 = op1 << op2 |
>>= |
op1 >>= op2 |
op1 = op1 >> op2 |
>>>= |
op1 >>>= op2 |
op1 = op1 >>> op2 |