【java基础】++ -- 运算符详解

++ -- 运算符详解

## 关于自增自减运算的问题《java编程思想》中是这样说的:

a、(i++,i--)运算符在操作数后面,先赋值,再运算

b、(++i, --i)运算符在操作数前面,先运算,再赋值

例:

int i = 1;
System.out.println(i-- - ++i);
System.out.println(i++ + ++i);
System.out.println(i);

//输出结果
0
4
3 

解析:第一行(i-- - ++i) 。输出0。i的初始值为1,第一个i--,由于运算符在后面所以要先算出这个i--表达式的值为1,然后i再进行--,i的值为0。表达式的值要继续参与运算所以也就变成了(1 - ++i)。已知经过前面的运算此时i的值为0,所以++i这个表达式的值为1,此时i的值变成了1。然后表达式的值继续参与运算。就成了(1 - 1)。所以最后结果为0。

   第二行(i++ + ++i)。第一行运算完之后i的值是1。这里i++先赋值,再运算。也就是i++表达式为1,再++,所以i的值是2。++i先运算再赋值,++i也就是++2,表达式的值为3,再给i赋值,i也是3。表达式的值继续参加运算,就是(1 + 3),所以最后输出4。

     经过上面的运算,所以最后i的值是3。最后一行输出3。

总结:总之就是表达式的值参与运算,然后再算出操作数的值。如果没看明白,多读两遍应该就能明白了,实在不知道咋解释。

## 再来谈谈i=i++的问题

// 示例一
int i = 1;
i = i++;
System.out.println(i);
// 输出结果
1
------分割-----------------------
// 示例二
int i = 1;
i = ++i;
System.out.println(i);
// 输出结果
2

解析:示例一,i的初始值为1,i++表达式结果为1,然后进行++,i的值为2。再把表达式的结果赋值给i,因此,i为1。

   示例二,i的初始值为1,++i表达式结果为2i的值为2,把表达式的结果赋值给i,i为2。

总结:总之就是把表达式的结果赋值给等号左边的变量。如有问题,欢迎指正。

猜你喜欢

转载自www.cnblogs.com/illegalwang/p/10118811.html
今日推荐