人心易冷
2017-01-21 13:50
three=one+two;
System.out.println(three);
three+=one;
System.out.println(three);
three-=one;
System.out.println(three);
three*=one;
System.out.println(three);
three/=one;
System.out.println(three);
three%=one;
System.out.println(three);
谁能解释下为何代码是这样的,这个代码看不懂为何three=one+two;却输出System.out.println(three);的结果是30而不是0
这题首先是已经将局部变量three初始化为0,它是一个局部变量,然后局部变量变成了one+two,此时three的值已经为30,然后输出它的值为30,后面做的three+=one;这时three的值已经为30,然后加上one,变为40,总而言之,three 局部变量的值会随之改变。
代码不完整,one,two,three.是如何定义的呢?
three是左值,“=”是赋值符号:将右边运算的值赋值给左边的值(左值)。左值必须是变量,不能是常量,比如3=1+2是不合法的,计算机认为是错误的,编译不能通过。
three=20+10=30; three是one与two的和。
Java入门第一季(IDEA工具)升级版
1165558 学习 · 17587 问题
相似问题