(i += 1)
相当于i = i + 1
是否可以通过使用乘法来获得类似上面的内容:
(i *= 1)
, i = i * 1
我已经通过声明为 double 来尝试它,但我的结果中保持 0.0 值?
(i += 1)
相当于i = i + 1
是否可以通过使用乘法来获得类似上面的内容:
(i *= 1)
, i = i * 1
我已经通过声明为 double 来尝试它,但我的结果中保持 0.0 值?
听起来你是在将零乘以一。
0 * 1 = 0
首先声明double i = 1.0;
(或者int i = 1;
如果不需要十进制值。)您似乎乘以零。当然,除非您修改其他地方的值,否则i
时间1
将永远存在。1
i
除此之外,请注意这几乎i *= 1
等同于. 魔鬼在细节中,因为第一种形式将根据 Java 语言规范第5.1.3节执行隐式转换:i = i * 1
复合赋值表达式自动将它们执行的计算结果转换为左侧变量的类型。如果结果的类型与变量的类型相同,则强制转换无效。但是,如果结果的类型比变量的类型更宽,则复合赋值运算符将执行静默缩小原语转换
如果i
在相乘之前没有赋值(除了零),那么它将是 0*1 等于 0。
它采用 double 的默认值,正如您在类范围中声明的那样......
尝试这个...
class Test implements TestInterface {
public static void main(String[] args){
double i = 1;
System.out.println(i *= 1);
}
}