public class TheGameTest
{
public static void main(String[] args)
{
int a = 5; int b = 4;
int c = a++ - --b * ++a / b-- >>2 % a--;
System.out.println(c);
}
}
(1) int a = 0 ; | (2) int c = 0;
int b = ++a + ++a ; | int d = c++ + ++c ;
int b = (0+1) + (1+1) ; | int d = (0) + (1+1);
int b = 3 ; | int d = 2;
第一个a++ 先自加 值为:1 第二个 a自加之前值已经为1 , 再自加为2 | 第一个c++是先运算再自加,值为0. 第二个++c
因为之前的c++,所以运算后赋值自身,所以++c值为2;
上面的两个表达式也算是找出了最上面问题的所在了...
希望斑竹给个分分吧...作者: 黑马十八期0513 时间: 2012-11-10 18:33
int c =a++ - --b * ++a / b-- >> 2 % a--
c =5 - 3*7/2 >>2%6
c =5 -10>>2%6
c =5 -5%6
c =5 -6
c =-1作者: 黑马十八期0513 时间: 2012-11-10 18:39
不对,算错了。应该是
c = 5 - 3 * 7 / 2 >> 2 % 6
= 5 - 10>>2 % 6
= 5 - 2 % 6
= 5 - 6
=-1作者: 折纸时代 时间: 2012-11-10 20:34