public static void main(String[] args) {
int x=1;
int y=2;
int z=3;
int c=y+=z--/++x-x;
System.out.println(c);
}
------最佳解决方案-------------------- 不是很复杂,大致计算步骤如下:
int c = y += z-- / ++x - x; // 原表达式
int c = y += 3 / ++x - x; // 这里 z-- 是延后计算
int c = y += 3 / 2 - x; // 这里 ++x 是提前计算
int c = y += 1 - 2; // 除法优先,此外int除法没有小数
int c = y += -1; // y += -1 其实就是: y = y + -1
int c = y = 2 - 1;
int c = 1; ------其他解决方案-------------------- //拆开后
int c=y=y+z--/++x-x;
//自己理解: 如有错误请斧正!
//先Z/++后的x 结果等于1 然后自身减减等于0
//然后y+0-x 结果就是2+0-1 结果就是1 ------其他解决方案-------------------- 先按照运算符的优先级拆分表达式:c=y+=z--/++x-x
1. 第一级别除法运算 z--/++x ,“/”优先级低于“--”故z自增后再除,x先自增在运算,故结果为 2/2 = 1;