int i = 3, j = 3;
++i; // i becomes 4
--j; // j becomes 2
--i将i增加1,--j将j减去1。这些操作符称为前置自增操作符和前置自减操作符。
如你所见,前面的例子中,i++和++i的效果,或者i--和--i的效果是一样的。然而,当用在表达式中不单纯只进行自增和自减时,他们就会产生不同的效果。具体如下表,描述了自增和自减操作符的不同之处,并且给出了示例:
操作符
名称
描述
示例(假设i=1)
++var
前置自增
将var加1,在语句中使用新的var值
int j = ++i; // j is 2, i is 2
var++
后置自增
将var加1,但是在语句中使用原来的var值
int j = i++; // j is 1, i is 2
--var
前置自减
将var减1,在语句中使用新的var值
int j = --i; // j is 0, i is 0
var--
后置自减
将var减1,但是在语句中使用原来的var值
int j = i--; // j is 1, i is 0
下面演示前置形式的++(或者--)和后置形式的++(或者--)的补充示例。考虑以下代码:
int i = 10;
int newnum = 10 * i++; //左边等价于---》 int newnum = 10 * i;
system.out.print("i is " + i //接上条 i = i + 1;
+ ", newnum is " + newnum);
int i = 1;
int k = ++i + i * 3;
// 分析可知: ++i求值后返回2。当求i*3的值时,i是2。因此k的值是8。
//------------对比以下代码------------------
int i = 1;
int k = i*3 + ++i ;
// 分析可知:从左往右,当求i*3的值时,i是1,后算++i,++i整体是2。因此k的值是5。
3.总结
自增在平时的java笔试和面试中经常作为考查程序员的基础题多次出现,也是比较容易混淆的知识点。在平时编程中使用自增操作符和自减操作符可以使表达式更加简短,但也会使他们比较复杂且难以读懂。应该避免在同一个表达式中使用这些操作符修改多个变量或多次修改同一个变量,如int k = ++i + i * 3。 4.说明
本文摘自《java语言程序设计与数据结构》(基础篇)第11版第2章2.14节内容,并由本人结合实例并补充扩展了一些实例代码,本文用于本人学习及经验总结。
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对CodeAE代码之家的支持。
原文链接:https://www.cnblogs.com/yif0118/p/10425013.html