A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

(求细节讲解)比如: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);
..........
还有一些想不到啦,请大神和前辈知道,辛苦啦~





9 个回复

倒序浏览

回帖奖励 +1

a++是先用a进行当前语句的比较或操作,然后自身进行加1计算
++a是先a自身进行加1计算,然后用+1后的值去进行当前语句的操作
回复 使用道具 举报
举个例:   
             int   a = 1
             s1 = a++;

               s2= ++a;

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

s2 = 2     a = 2        ++a;先加后用
回复 使用道具 举报
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了。
回复 使用道具 举报
int a = 2;
int b = a++;
System.out.println(a); //a = 3   因為a++已完成運行
System.out.println(b); //b = 2   因為b=a , ++後運行
-------------------------   
int a = 2;
a = a ++;
System.out.println(a);//a=2  因為a=a, ++後運行

boolean c = a++>2;
System.out.println(c); //false
回复 使用道具 举报
inta=a++,先赋值在加,inta=++a,先加在赋值
回复 使用道具 举报
木森 中级黑马 2015-7-25 23:50:56
7#
写的挺好的 虽然很基础的东东
回复 使用道具 举报
int a=1;
b=a++;
b值为1,a值为2;
b1=++a;
b1值为2,a值为2
回复 使用道具 举报
花漾 来自手机 中级黑马 2015-7-26 00:10:53
9#
先加后用和先用后加的区别
回复 使用道具 举报
结果:3,2,2,false,true
a++先使用a的值再自增,产生临时变量
++a先自增再使用新的a的值,不产生临时变量
这么理解就很明白了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马