运算符i++与++i的区别
i++与++i有两种情况下的区别:
(1)当它不参与运算时,i++ 与 ++i 的结果是一样的。
(2)当它参与运算时:i++ 是先参与运算后,i 再自增,例如 i = 1 时,先进行 运算返回结果后 i 再自增变成 2;++i 是先进行自增后再进行运算,例如 i = 1 时,先进行自增变成 2 后再去运算得到结果。
具体代码如下;(不参与运算时)
package com.etime4;
/***
*
* @author dell
*
* 创建时间:2021年1月14日 下午9:19:41
*/
public class Test1 {
public static void main(String[] args) {
// 当 i 不参与运算时
int i = 99;
i++;
System.out.println(i);//100
++i;
System.out.println(i);//101
//由此可见,当不参与运算时++在前在后结果都是一样的
}
}
具体代码如下;(参与运算时)
package com.etime4;
/***
*
* @author dell
*
* 创建时间:2021年1月14日 下午9:22:15
*/
public class Test2 {
public static void main(String[] args) {
/**
* 当 i 参与运算时
*/
//i++,当++在后时,先进行运算 再自增1;
int a=5;
int b=9;
int z=(a++)+(b++);
System.out.println(z);//当++在后时先参与运算,再自增1 //结果为14,;
System.out.println(a);//当执行运算结束后a再自增加1, //结果为6
System.out.println(b);//当执行运算结束后b再自增加1, //结果为10
System.out.println("----------分割线-----------");
//++i,当++在前时,i先进行自增 1 再运算;
int c=3;
int d=4;
int e=(++c)+(++d);
System.out.println(c);//c先自增加1再进行运算 //运算结果:4
System.out.println(d);//d先自增加1再进行运算 //运算结果:5
System.out.println(e);//自增后c=4,d=5 相加得到结果9
System.out.println("----------分割线----------");
}
}
##总结: - - 的效果和 + + 一样的,都有参与和不参与运算两种不同结果;