表达评估序列

时间:2016-09-30 19:41:45

标签: expression evaluation

为什么以下代码打印25.我猜它应该打印28代替。有人可以像计算机一样逐步评估它。谢谢。

class MultiAssign
{
    public static void main(String[] args)
    {
        int k = 1;
        k += (k = 4) * (k + 2); // or k = k + (k = 4) * (k + 2);
        System.out.println(k);
    }
}

1 个答案:

答案 0 :(得分:0)

查看将要进行操作的顺序。你会注意到,只有在写完k = 4之后,k的值才会变为4 ...在此之前,k的值将保持为1