黑马程序员技术交流社区

标题: a++与++a在应用中的区别是什么? [打印本页]

作者: 转行的小青年    时间: 2015-7-25 22:28
标题: a++与++a在应用中的区别是什么?
(求细节讲解)比如:int a = 2;
int b = a++;
System.out.println(a);
System.out.println(b);
int a = 2;
a = a ++;
System.out.println(a);
boolean c = a++>2;
System.out.println(c);
boolean c = ++a>2;
System.out.println(c);
..........
还有一些想不到啦,请大神和前辈知道,辛苦啦~






作者: spike_az    时间: 2015-7-25 22:46
a++是先用a进行当前语句的比较或操作,然后自身进行加1计算
++a是先a自身进行加1计算,然后用+1后的值去进行当前语句的操作
作者: 辉大大    时间: 2015-7-25 22:52
举个例:   
             int   a = 1
             s1 = a++;

               s2= ++a;

s1 =  1;     a = 2      a++,先用后加

s2 = 2     a = 2        ++a;先加后用
作者: 刘远东    时间: 2015-7-25 23:06
public static void main(String[] args) {
  int a = 2, b = 4;
  boolean c = (++a > 3 && ++b > 4);
  System.out.println("a:" + a + ",b:" + b);
}
因为执行 boolean c = (++a > 3 && ++b > 4);时,由于此时a已经变成了3,&&符号前的判断就已经是false了,后面的运算就不会再执行了,所以实际上 ++b这句代码根本没有执行,b的值当然不会变化,还是4
你把 && 改成 ||,b的值就会变成5了。
作者: 康恒强    时间: 2015-7-25 23:45
inta=a++,先赋值在加,inta=++a,先加在赋值
作者: 木森    时间: 2015-7-25 23:50
写的挺好的 虽然很基础的东东
作者: guohognbo    时间: 2015-7-26 00:06
int a=1;
b=a++;
b值为1,a值为2;
b1=++a;
b1值为2,a值为2
作者: 花漾    时间: 2015-7-26 00:10
先加后用和先用后加的区别
作者: softzhang    时间: 2015-7-26 01:02
结果:3,2,2,false,true
a++先使用a的值再自增,产生临时变量
++a先自增再使用新的a的值,不产生临时变量
这么理解就很明白了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2