i++和++i的区别

很多朋友在学习基础的时候很容易遇到过这个问题,++i和i++到底有什么区别?
下面来详细解释一下。
首先i++和++i单独为一条语句时没有任何区别;
例如:
int i=1;
i++; //单独为一条语句
System.out.println(“i=”+i);//i=2

int i=1;
++i; //单独为一条语句
System.out.println(“i=”+i);//i=2
这种情况无任何区别,最终的i都会自增1。

但是, 当i++与++i参与到另一条语句的运行时就会有区别,总的可以概括为i++为先参与运算之后再自身加1,++i为先自身加1再参与其他的运算

例:
int i=3;
int j=i++;
System.out.println(“i=”+i);//结果为i=4
System.out.println(“j=”+j);//结果为j=3

这条语句就已经不是i++在单独运行了,因为它参与了j的赋值,所以它会先参与j的赋值运算然后再自身加一,也就是说,先把自己原有的值3,拿出来赋值给j,之后自己在加1,这样打印的结果就是j=3,x=4。

下面再看一下++i的用法。
int i=3;
int j=++i;
System.out.println(“i=”+i);//结果为i=4
System.out.println(“j=”+j);//结果为j=4

这条语句中的++i同样参与了y的赋值,不同的是这里的++i会先自己加1之后再把值赋给y,所以这条语句打印的结果就是y=4,i=4。
但是值得注意的是无论是先参与运算还是先自身加1再参与运算,最终i的值都会加1。

下面来个小练习:
判断最终的a、b、c各是多少?
int a = 15;
int b = 15;
int c = 15;

a = ++b; //a=16,b=16,c=15
c = a–; //a=15,b=16,c=16
b = ++a; //a=16,b=16,c=16
a = c–; //a=16,b=16,c=15

最终结果为:a=16,b=16,c=15

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值