我是菜鸟,在练习计算符号的使用-----public static void main(String[] args) {
int a=5;
int b=a;
int c=b-a;
int d=b*c;
int e=c/a;
int f=++a;
int g=f++;
int h=--g;
int i=h--;
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);
System.out.println("f="+f);
System.out.println("g="+g);
System.out.println("h="+h);
System.out.println("i="+i);
// TODO Auto-generated method stub }}---------------运行后的结果--------------------
a=6 //问题就在这里
b=5
c=0
d=0
e=0
f=7
g=5
h=4
i=5a的值总比给它赋的大一个1,我试了好几次,赋4得出来的就是5,赋4+5得出来的就是10,现在我真晕了.如果a值为6,那b也该是6啊!怎么a=6,b=a/结果b就成5了?我没用自加的符号啊~这个1是哪跑出来的?谢谢大大们了!

解决方案 »

  1.   

    奇怪了....我的也是
    C:\temp>javac aaaa.javaC:\temp>java aaaa
    a=6
    b=5
    c=0
    d=0
    e=0
    f=7
    g=5
    h=4
    i=5C:\temp>
      

  2.   

    System.out.println("a="+a); 
    你打印出的是+a不是a
      

  3.   

    int   f=++a; 
      

  4.   

    int       f=++a; 
    你的a已经自加过1了,当然是6
      

  5.   

    楼主,试试下面的方法就明白了
    System.out.println(a+a+"===a");
    System.out.println("a=="+a);
      

  6.   

    int f=++a;  //a自然就加1了啊
      

  7.   

    前面的语句都没有影响到a的值,真正影响到a的值的是int   f=++a; 这个语句.所以a的结果是6.你可以把System.out.println("a="+a);插入到每句下面打印就看出来了.
      

  8.   

    int   f=++a; //f=a,然后a自增,a=6了哇
      

  9.   

     f=++a; 这儿做了递增,就会影响a的值。。使a的值加了一如下就不会了。。
    public   static   void   main(String[]   args)   { 
    int   a=5; 
    int   b=a; 
    int   c=b-a; 
    int   d=b*c; 
    int   e=c/a; 
    System.out.println("a="+a); 
    int   f=++a; 
    int   g=f++; 
    int   h=--g; 
    int   i=h--; System.out.println("b="+b); 
    System.out.println("c="+c); 
    System.out.println("d="+d); 
    System.out.println("e="+e); 
    System.out.println("f="+f); 
    System.out.println("g="+g); 
    System.out.println("h="+h); 
    System.out.println("i="+i); 
    //   TODO   Auto-generated   method   stub } }