【发布时间】:2017-05-29 11:43:30
【问题描述】:
我做了一个小程序,输出一个身高/体重比最高的人。我做了一个foreach循环:
public Person highestDivideRating() {
if(this.members.isEmpty()) {
return null;
}
Person highestSoFar = this.members.get(0);
for(Person person : this.members) {
if(person.divide() > highestSoFar.divide()) {
highestSoFar = person;
//person = highestSoFar;
}
}
return highestSoFar;
}
highestSoFar = person; 这会输出一个比率最高的人。
person = highestSoFar; 这会输出第一人称。
有人可以解释一下吗?对我来说应该是一样的。
【问题讨论】:
-
请去学习一些基础知识,你会找到答案
-
既然设定值A等于值B就等于设定值B等于值A ;)
-
"
highestSoFar = person;这会输出一个比率最高的人。"不,它没有。它改变了highestSoFar的值 -
人 = highsofar 。如果您稍微抬头,您实际上会看到highestSoFar = this.members.get(0)。因此它永远是第一人称。
-
"对我来说应该是一样的。" int a=0; int b=1; a=b; 和
int a=0; int b=1; b=a;a=b 与b=a相同,并且这两个代码相同,那么a 和b 在该操作之后会有什么值? 0 还是 1?赋值运算不能是可交换的。