重新縮進你的代碼,你會看到這個問題:
public boolean removeStudent(int id)
{
for (Student student : this)
{
if ((student.getID()) == (id)) {
return true;
}
id.remove();
}
return false;
}
見你當前正在做的事情:一旦你打學生相匹配的ID ,你會立即跳出該方法,返回true。在此之前,您將移除您所重複的所有學生。即你正在移除所有學生,直到找到一個匹配的。
這對我來說看起來不太正常。
我敢打賭,你想要做的是:刪除所有具有匹配ID的學生。如果任何學生被刪除,則返回true,否則返回false。
如果是的話,試着去了解這段代碼:(我不是給你直接的答案。如果你能理解這是怎麼回事就在這片代碼,那麼你可以很容易地解決你的)
// print out only odd numbers in the list, and return true if there is any.
boolean printOdd(List<Integer> numbers) {
boolean oddFound = false;
for (int i : numbers) {
if ((i % 2) != 0) {
System.out.println("Odd Number Found: " + i);
oddFound = true;
}
}
return oddFound;
}
在你的代碼更多的問題:
你不使用似乎對-每個看起來正常。你的班級是一個集合嗎?
for (Type a : b) {...}
expect b
是一個Collection(更確切地說是Iterable)還是一個數組。
另一個問題是,id是一個整數,你期望id.remove()
會做什麼?你正在告訴Integer做「刪除()」
我假設你正在做類似this.studentList.remove(id)
或this.studentList.remove(student)
?
或者'this.remove(student)'?或者是其他東西?沒有足夠的上下文。 – 2013-03-04 01:48:59
@JeremyRoman touche。 – 2013-03-04 01:49:45
雅工作非常感謝。 – user2130183 2013-03-04 01:54:31