您的位置:程序门 -> java -> j2se / 基础类



多出个1来,望大大们解惑!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


多出个1来,望大大们解惑![已结贴,结贴人:gspgsp]
发表于:2008-01-11 17:56:23 楼主
我是菜鸟,在练习计算符号的使用-----

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=5

a的值总比给它赋的大一个1,我试了好几次,赋4得出来的就是5,赋4+5得出来的就是10,现在我真晕了.如果a值为6,那b也该是6啊!怎么a=6,b=a/结果b就成5了?我没用自加的符号啊~这个1是哪跑出来的?谢谢大大们了!

发表于:2008-01-11 18:02:391楼 得分:0
奇怪了....我的也是
c:\temp> javac   aaaa.java

c:\temp> java   aaaa
a=6
b=5
c=0
d=0
e=0
f=7
g=5
h=4
i=5

c:\temp>
发表于:2008-01-11 18:06:592楼 得分:0
system.out.println("a="+a);  
你打印出的是+a不是a
发表于:2008-01-11 18:15:553楼 得分:0
int       f=++a;  
发表于:2008-01-11 18:17:024楼 得分:0
我知道了,吧a转成字符串在打印
发表于:2008-01-11 18:17:055楼 得分:0
int               f=++a;  
你的a已经自加过1了,当然是6
发表于:2008-01-11 18:21:136楼 得分:0
楼主,试试下面的方法就明白了
system.out.println(a+a+"===a");
system.out.println("a=="+a);
发表于:2008-01-11 18:31:137楼 得分:0
int   f=++a;     //a自然就加1了啊
发表于:2008-01-11 21:31:348楼 得分:10
前面的语句都没有影响到a的值,真正影响到a的值的是int       f=++a;   这个语句.所以a的结果是6.你可以把system.out.println("a="+a);插入到每句下面打印就看出来了.
发表于:2008-01-11 21:46:299楼 得分:0
int       f=++a;   //f=a,然后a自增,a=6了哇

发表于:2008-01-11 22:01:1510楼 得分:0
  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  

}  

}  
发表于:2008-01-11 22:04:3511楼 得分:0
你都++a了,a还能是5吗?


快速检索

最新资讯
热门点击