当前位置: 首页 > 编程语言 > Java > 正文

Java编程那些事儿27—其它运算符

时间:2010-03-07 csdn 陈跃峰

4.6 其它运算符

对于无法归类,或者单独占一类的运算符,将在下面进行介绍。

l++、--

这两个运算符是程序中的递增和递减运算符。其意义参照以下示例代码:

int n = 0;
n++;// n = n + 1
System.out.println(n);

n++的意义就是对原来变量n的值加1以后再赋值给自身,因为原来变量n的值是0,加1以后则变成1。

同理,递减运算符的意义也是这样,示例代码:

int m = 0;
m--;
System.out.println(m);

m—的意义就是对原来变量m的值减1以后再赋值给自身,则m的值变成-1。

需要注意的是++和—只能操作变量,而不能操作其他的内容,以下使用都是错误的:

int a = 0;
int b = 0;
(a + b)++;  //错误
final int M = 1;
M++;   //错误
5++;   //错误

在实际书写时,++和—既可以写在变量的前面,也可以写在变量的后面,例如:

int k = 0;
k++;
++k;

同理,--也可以这样,那么这些在实际使用中有什么区别呢?其实对于变量的值来说,没有区别,也就是++无论写后面还是写前面,变量的值肯定增加1,--无论写在后面还是前面,变量的值都减1。其最大的区别在于整个式子的值,如n++,规则如下:

1)++或—写在变量前面,则该式子的值等于变量变化以后的值。

2)++或—写在变量后面,则该式子的值等于变量变化以前的值。

示例代码如下:

int n = 1;
int m= 1;
n++;  //n的值变为2
++m;  //m的值变为2
int k = n++;//n的初始值是2,则n++的值是2,结果n的值为3,k的值为2
int j = ++m; //m的初始值是2,则++m的值是3,结果m的值是3,j的值为3

同理,--也是这样。

下面是一个稍微综合点的示例:

int a = 0;
int b = 0;
a = b++;//a为0,b为1
a = ++b;//a为2,b为2
b = a++;//a为3,b为2
a = ++b;//a为3,b为3

说明:注释部分为对应行代码运行以后,a和b的值。

在程序开发中,可以使用该区别简化代码的书写,但是不推荐这样做,因为这样将增加阅读代码的难度。