使用* =在java中乘法?

时间:2012-07-15 15:55:36

标签: java operator-keyword multiplication

(i += 1)相当于i = i + 1

是否可以使用乘法如上所述:

(i *= 1)i = i * 1

我通过声明为double来尝试它但我在结果中保持0.0值?

4 个答案:

答案 0 :(得分:3)

听起来你正在将零乘以。

0 * 1 = 0

答案 1 :(得分:2)

如果不需要小数值,首先声明double i = 1.0;(或int i = 1;。)似乎您将乘以零。当然,i1总是1,除非您在其他地方修改i的值。

除此之外,请注意i *= 1 几乎等同于i = i * 1。魔鬼在细节中,因为第一种形式将根据Java语言规范执行隐式转换,§5.1.3部分:

  

复合赋值表达式自动将它们执行的计算结果转换为左侧变量的类型。如果结果的类型与变量的类型相同,则强制转换无效。但是,如果结果的类型比变量的类型宽,则复合赋值运算符执行静默缩小基元转换

答案 2 :(得分:1)

如果i在乘法之前没有指定值(非零),则它将为0 * 1等于0.

答案 3 :(得分:1)

它取默认值double,因为你在类范围中声明了它......

试试这个......

class Test implements TestInterface {


        public static void main(String[] args){
            double i = 1;
            System.out.println(i *= 1);
        }
     }