我是自学的新手
这教科书上的一个范例public class plus {
public static void main(String args[]){
int x1 = 3, y1 = 5;
int x2 = 3, y2 = 5;
int r1, r2;
r1 = x1++ + x1*y1;
r2 = ++x2 + x2*y2;
System.out.println("x1="+x1+" y1="+y1+" r1="+r1);
System.out.println("x2="+x2+" y2="+y2+" r2="+r2);
}
}
运行结果是
x1=4 y1=5 r1=23
x2=4 y2=5 r2=24我不是很明白
为什么在r2 = ++x2 + x2*y2;中后一个x2没有进行++的增赋值运算但是计算的时候赋值同样按4计算呢?
虽然非常基础但事后我觉得对我这种新手非常重要,望高手不吝赐教。
现在这里谢谢了
这教科书上的一个范例public class plus {
public static void main(String args[]){
int x1 = 3, y1 = 5;
int x2 = 3, y2 = 5;
int r1, r2;
r1 = x1++ + x1*y1;
r2 = ++x2 + x2*y2;
System.out.println("x1="+x1+" y1="+y1+" r1="+r1);
System.out.println("x2="+x2+" y2="+y2+" r2="+r2);
}
}
运行结果是
x1=4 y1=5 r1=23
x2=4 y2=5 r2=24我不是很明白
为什么在r2 = ++x2 + x2*y2;中后一个x2没有进行++的增赋值运算但是计算的时候赋值同样按4计算呢?
虽然非常基础但事后我觉得对我这种新手非常重要,望高手不吝赐教。
现在这里谢谢了
而++x2先+1 了
我自己做了这样的运算
r2 = x2*y2 + ++x2;
运行结果是
x2=4 y2=5 r2=19
所以我想问一下是因为运算是从左到右的吗? 所以后边的x2需要用已经更改了的x2的赋值我还想再问一下这个自加运算对x2赋值的影响是全局的吗? 即如果后边还有别的式子再出现x2的时候赋值应该按3还是按4算呢?
++x2 相当于x2=x2+1 下次运算的时候x2等于4 了,也就是说r2 = ++x2 + x2*y2 中的++x2=4 x2*y2中的x2也已经等于4了,所以r2=4+4*5=24
r2 = x2*y2 + ++x2;
此时x2还是=3 ++x2之后(++x2)就等于4了,所以3*5+4=19