我正在尝试编写一个函数来根据其中的对象是否为 VIP 来显示列表。如果我的 VIP 标志为真,我只想显示那些储物柜。如果它是假的,我想显示每个储物柜,包括 VIP 储物柜。这是我所拥有的:
void SelfStorageList::dispLockers(bool vipOnly) {
if (vipOnly) {
for(LockerNode *p = head; p !=0; p = p->next) {
if(p->objLocker.isVip) {
cout << p->objLocker.lockerId << "," << p->objLocker.renterName << "," << p->objLocker.monthlyRent << "," << p->objLocker.isVip << "," << p->objLocker.isRentOverdue << "\n";
return;
}
else {
return;
}
}
for(LockerNode *p = head; p !=0; p = p->next) {
cout << p->objLocker.lockerId << "," << p->objLocker.renterName << "," << p->objLocker.monthlyRent << "," << p->objLocker.isVip << "," << p->objLocker.isRentOverdue << "\n";
}
}
}
为很长的线路道歉。我认为它应该可以工作,但根据我不同的简单测试,它似乎错过了一些案例。任何人都可以提供任何建议吗?我是不是把条件弄得太简单了?
需要注意的是,head 指向列表中的第一个储物柜,而 next 是指向下一个储物柜的指针,我相信你已经猜到了。