Topic: java运算符优先级问题

  Print this page

1.java运算符优先级问题 Copy to clipboard
Posted by: sirius93
Posted on: 2007-08-06 12:43

最近看到一道题目
int x=5,y=3;
x=x+(x++) +(x--) ;
System.out.printlnFight;
调试后发现输出的x为16,我怎么都想不通为什么是这个答案.
请帮忙指示一下到底这题的运算过程是怎么样的?

2.Re:java运算符优先级问题 [Re: sirius93] Copy to clipboard
Posted by: 小猴一赞
Posted on: 2007-08-06 19:15

x=5+(5+1)+((5+1)-1)=16

3.Re:java运算符优先级问题 [Re: sirius93] Copy to clipboard
Posted by: luoxiaoone
Posted on: 2007-08-24 18:01

不对,可以试一下下面的就知道了
x=5;
x=x+(x++);
System.out.printlnFight;

4.Re:java运算符优先级问题 [Re: sirius93] Copy to clipboard
Posted by: 67865695
Posted on: 2007-08-26 20:17

int x=5,y=3;
y=x+(x++) +(x--) ;
实际算式为 y = 5 +5+ (5+1)
此时++,--后与前一个操作符进行,即++后于第1个+

如果是
y = x +(++x)+(--x)
实际算式为 y=5+(5+1)+(6-1)
此时++,--先与前一个操作符进行,即++先于第1个+

5.Re:java运算符优先级问题 [Re: 67865695] Copy to clipboard
Posted by: luoxiaoone
Posted on: 2007-08-27 15:37

67865695 wrote:
int x=5,y=3;
y=x+(x++) +(x--) ;
实际算式为 y = 5 +5+ (5+1)
此时++,--后与前一个操作符进行,即++后于第1个+

如果是
y = x +(++x)+(--x)
实际算式为 y=5+(5+1)+(6-1)
此时++,--先与前一个操作符进行,即++先于第1个+


支持

6.Re:java运算符优先级问题 [Re: sirius93] Copy to clipboard
Posted by: luoxiaoone
Posted on: 2007-08-27 15:52

大家不妨看一下下面这个问题:
int a=5;
a+=a-=a+a;
System.out.printlnAngel;
然后把它写成C程序,再运行看看,,,,,

7.Re:java运算符优先级问题 [Re: 67865695] Copy to clipboard
Posted by: xici
Posted on: 2007-09-04 13:22

67865695 wrote:
int x=5,y=3;
y=x+(x++) +(x--) ;
实际算式为 y = 5 +5+ (5+1)
此时++,--后与前一个操作符进行,即++后于第1个+

如果是
y = x +(++x)+(--x)
实际算式为 y=5+(5+1)+(6-1)
此时++,--先与前一个操作符进行,即++先于第1个+

计算正算。
要记住java中的运算式的值要看齐它最左边表达式的值。


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923