(i += 1)
相当于i = i + 1
是否可以使用乘法如上所述:
(i *= 1)
,i = i * 1
我通过声明为double来尝试它但我在结果中保持0.0值?
答案 0 :(得分:3)
听起来你正在将零乘以。
0 * 1 = 0
答案 1 :(得分:2)
如果不需要小数值,首先声明double i = 1.0;
(或int i = 1;
。)似乎您将乘以零。当然,i
次1
总是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);
}
}