当我收到这道题的时候,我正在考试,下面的问题的输出是什么?
public class ClassicQuestion {
public static void main(String[] args)
{
int i = 25;
double j = 95.0;
System.out.println(j+=i);
System.out.println(i+=j);
}
}答案的选择是
我不知道正确的答案,但我认为正确的答案将是一个,但给我不正确的答案?如何在不进行转换的情况下将一个变量分配给不同类型的数据类型?
发布于 2015-04-26 12:41:07
正确答案3。
因为根据
jls形式的复合赋值操作符
E1 op= E2evalute toE1 = (T) ((E1) op (E2)),其中T是E1的类型,但E1只计算一次
因此,您的j+=i更改为j=(double)(j+i),从现在起,j值是120.0,下次执行i+=j时,它将更改为i=(int)(i+j),因此是145。
所以输出是120.0 145
https://stackoverflow.com/questions/29877733
复制相似问题