public class Test
{
    public static void main(String[] args)
   {  
      Test aTest = new Test();
      aTest.print();
    }
   public void print()
   {
             int a = 10;
             int y = 15 + ++a;
             int z = 15 + a++;
             System.out.println("First=" + y);
      System.out.println("Second=" + z);
    }
}应该是First=26,Second=25的
为什么打印出来都是26????
请各位高手指导

解决方案 »

  1.   

    ++是做为一个表达式执行的。。在+号中.先计算表达式的值。然后再加
     public void print()
       {
                 int a = 10;
                 int y = 15 + ++a;
                 int z = 15 + a++;
                 System.out.println("First=" + y);
          System.out.println("Second=" + z);是执行的是
        int y = 15++ +a;
        int z = 15+ a++;
      

  2.   

    应该是26呀 第一次加了 ++a 之后 a=16
    第二次 a++ a=16
      

  3.   

    第一次 ++a后,a的值已经变成16了如果你把int y = 15 + ++a;
            int z = 15 + a++;
    这两条语句的先后顺序换一下,输出结果就是First=27,Second=25了
      

  4.   

    都是26才是对的阿
    不是才奇怪呢public class Test
    {
        public static void main(String[] args)
       {  
          Test aTest = new Test();
          aTest.print();
        }
       public void print()
       {
                 int a = 10;
                 int y = 15 + ++a;  //这个时候a先++才和15相加,所以其实是15+11=26
                 int z = 15 + a++;  //这个时候其实a已经是16了,而且是先相加,后++
    //int m = 10 + a;
    //System.out.println("M=" + m);//执行以上两句代码你就明白了。
                 System.out.println("First=" + y);
          System.out.println("Second=" + z);
        }
    }建议不要搞这些阿,大概明白就好了,真正工作的时候不会需要这些代码的。
    纯粹是给以后维护的人或者一起合作的人找麻烦。
    据个简单例子,别人给你这样的代码,即使加上注释,我估计你也不知道什么意思啊。
    有时间多看一些数据结构吧!可能都你这有用。