1

我试图计算它,i=i*++i因此i=56*57它给了我 3192,但我的程序说该值为 2162:

class Demo {
    public static void main(String args[])  {
        short i=056;  
        i*=++i;  
        System.out.println(i);  
    }
}
4

1 回答 1

8

问题是在乘法之前 - 它在这里:

short i=056;  

这是一个八进制文字,十进制值为 46。所以你实际上得到了 46 * 47 的结果,这确实是 2162。

强烈建议您不要使用类似的代码i *= ++i。每个相关人员都可以更简单地使用i *= i + 1. 我还建议您不要使用八进制文字。

于 2013-07-29T06:33:18.830 回答