问答详情
源自:3-2 Java中的算术运算符

关于A++自增的问题。

public class HelloWorld{    

public static void main(String[] args)

 {

 int a=24;   int b=a++;   

 System.out.println("a:"+a);    

System.out.println("b:"+b);

 } }

 输出结果: a:25 b:24 

为什么啊?

 a=24 b的值是取a值后自增1 不是应该:a:24 b:25  才对吗?

提问者:慕村635210 2017-07-15 15:28

个回答

  • 想名字太累
    2017-07-15 18:24:51

    b=a++表示把a的值赋给b,然后a=a+1,自增是增靠近"++"这个运算符最近的变量的。

    如果想要达到“b的值是取a值后自增1”好像只能分开敲b=a;b++;

    测试了一下用java好像无法判别(b=a)++;会提示错误为意外的类型;不过用C可以正确识别。

    另外,在java中,a++ 和 ++a的相同点都是给a+1,不同点是a++是先参加程序的运行再+1,而++a则是先+1再参加程序的运行。

    举个例子来说: a=2;  b = a++;    运行后: b = 2,a =3 ;

                             a=2;  b = ++a;    运行后: b = 3,a =3; 

  • Passerby海
    2017-07-15 16:42:57

    a++就是先把a的值赋值给b;如果是b=++a的话,就是先给a加1,然后赋值给b,结果就是a=25,b=25,

  • 慕粉1474779987
    2017-07-15 16:08:19

    b=a++ ,是把a赋值给b,然后a自增

  • 我先吃口瓜
    2017-07-15 15:46:14

    b=a++,意思是b=a,然后a++。