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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 叮当 中级黑马   /  2014-9-1 15:52  /  2260 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

比如 int a=2   
       b=2+a++;
       b=4;
    a不是应该要加1不,那个1呢?

10 个回复

正序浏览
1  a++和++a 的共同点 : 都是自增加1
2 不同点 :  体现在运算中,当在一个运算的式子中,如int a=2   ,  b=2+a++;
   这个a++在b的运算中,它是先运算,在自增,也就相当于b = 2+2   ,a = a+1;
    如果是++a则先自增,在运算
回复 使用道具 举报
huangxuanheng 来自手机 中级黑马 2014-9-3 05:59:35
10#
x=a++实际上等效于x=a,a=a+1;如a=3,执行x=a++后,x=3,a=3+1=4;而x=++a,等效于a=a+1,x=a;如a=3,则执行x=++a后,a=3+1=4,x=4
回复 使用道具 举报
可以先查一下运算符优先级,这样会好理解些。
回复 使用道具 举报
++在前,先之身加1,在干别人让干的事,      ++在后先干别人让干的事,在自身加+
回复 使用道具 举报
a++ 在后:a自增1,a原来的值作为表达式返回值
++a 在前:a自增1,原来a+1的值作为表达式的返回值
--a 在前:a自减1,原来a -1 的值作为表达式的返回值
a-- 在后:a自减1,原来的值作为表达的返回值
回复 使用道具 举报
a++是指:先把a放入公式中,等公式运算完后,再把a的值加1。

++a是指:先把a的值加1,再把a放入公式中计算。
回复 使用道具 举报
本帖最后由 noiary 于 2014-9-1 18:47 编辑
  1. class Demo {

  2.         public static void main(String[] args) {
  3.         
  4.                 int a = 2;
  5.                 int b = 2 + a++;
  6.                
  7.                 System.out.println("b= " + b);
  8.                 System.out.println("a= " + a );
  9.         }
  10. }
复制代码


输出结果:
b= 4
a= 3

请自行理解
回复 使用道具 举报
只要出现a++或++a,a就会+1,
你这里b=2+a++,输出a=2+1=3,b=2+2=4
若b=2+++a结果就是5了 你就记一下+号和a的位置,就不会错了
回复 使用道具 举报
b=2+a++,是2加a然后赋值给b,然后a再加1。如果是++a是a先加1,然后再赋值给b
回复 使用道具 举报
m=a++ 相当于 m=a,a=a+1,m=++a 相当于 a=a+1,m=a 先进行2+a计算 赋值给b,b=3 然后b++, b=4
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马