Java之 ++i与i++有什么区别
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:MyEclipse10,java
作者: 刘东标
撰写时间:2019-07-24 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
在我们编程时,经常会用到变量的自增或自减操作,尤其在循环中用得最多。
例如:
++a(–a) //表示在使用变量a之前,先使a的值加(减)1
a++(a–) //表示在使用变量a之后,使a的值加(减)1
粗略地分析,++a与a++的作用都相当于a=a+1。假设a=4,则:
b=++a; //先将a的值加1,然后赋给b,此时a的值为5,b的值为5
再看看另外一个语法,同样假设a=4,则:
b=a++; //先将a的值赋给b,再将a的值变为5,此时a的值为5,b的值为4
下面我们以自增为例,两种自增方式:前置与后置,即++i和i++,它们的不同点在于i++是在程序执行完毕进行自增,而++i是在程序开始执行前进行自增。
package com.ldb.dao;
public class Bean3 {
public static void main(String[] args) {
int i=1;
System.out.println(i++ + i++);//第一
System.out.println("i="+i);
System.out.println(i++ + ++i);//第二
System.out.println("i="+i);
System.out.println(i++ + i++ + i++);//第三
System.out.println("i="+i);
}
}
输出结果为:3
i=3
8
i=5
18
i=8
(1)、表达式 i++ + i++首先执行第一个 i++操作,由于自增操作会稍后执行,因此,运算时 i 的值还是1,但自增操作后,i 的值变为了2,接着执行 i++ ,运算时, i 的值已经为2了,而执行了一个自增操作后,i的值变为了3,所以 i++ + i++=1+2=3,而运算完成后,i的值变为3。
(2)、表达式i++ + ++i首先执行第一个i++,但是自增操作会稍后执行。因此,此时i的值还是3,接着执行++i,此时i的值变为4,同时还要补执行i++的自增操作,因此此时i的·值变为5,所以i++ + ++i=3+5=8。
(3)、同理,i++ + i++ + i++=5+6+7=18。