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

新手请教,以下代码如何解释?

  int a=10;
  int b=a--;
  int c=--a;
  int d=a++;
  int e=++a;
  System.out.println("A的值为:"+a);
  System.out.println("B的值为:"+b);
  System.out.println("C的值为:"+c);
  System.out.println("D的值为:"+d);
  System.out.println("E的值为:"+e);

运行结果:

A的值为:10
B的值为:10
C的值为:8
D的值为:8
E的值为:10

提问者:时间改变了我们 2016-04-23 15:17

个回答

  • qq_浅思沐雨
    2016-04-23 16:12:22
    已采纳

    关于自增自减运算,我们要知道这些增减位置不管在哪都是要自增一或者自减一。如果++或--在变量前,那么该变量就先自增一或自减一,(即取加一后结果实现自增自减)然后进行运算。如果++或--在变量后,那么该变量(即取递增前的结果先不自增自减)直接进行运算,自增自减用在后面用到变量的运算上。比如说b=a--,a=10那么b就等于a(即b=a先不自减),然后c=--a(这里的a就是b=a--的自减后的a)a就等于9,然后--a在自减1就变成了8。

  • 慕慕1006362
    2016-04-23 18:44:02

    大家们真好,讲的浅显易懂,点赞

  • 未曾尽然
    2016-04-23 15:43:43

    1. a--是先赋值再自减   因此int b=a--; 之后    b=10 a=9

    2. --a是先自减再赋值   因此int c=--a; 之后    a=8 c=8

    3. 同理 在int d=a++;后   d=8 a=9

    4. 同理 在int e=--a;后      a=10 e=10

    5. 所以 b=10 c=8 d=8 e=10  a的值由10变为 9、8、9、10最终为10

  • 慕粉3239972
    2016-04-23 15:41:13

    public class HelloWorld {

      public static void main(String[] args) {

     int a=10;

     int b=a--;

     int c=--a;

     int d=a++;

     int e=++a;

     System.out.println("A的值为:"+a);

     System.out.println("B的值为:"+b);//a--  --在后面所以不做操作还是10

     System.out.println("C的值为:"+c);//前面的-- 加自身的-- 得到8

     System.out.println("D的值为:"+d);//++是在变量后面 所以也不加 得到8

     System.out.println("E的值为:"+e);//根据前面的++ 再加上自身的++得到10

     

     //-- ++  放在变量前面的先++或者--   放在变量后面的运行后再++或者--

    }

    }

    ps:缩进全没了,全没了,全没了