我想寫一個函數來顯示一個列表,根據是否是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";
}
}
}
道歉爲很長的路線。我認爲它應該可行,但它似乎錯過了基於我不同的簡單測試的一些案例。任何人都可以提供建議嗎?我是否可能讓情況太簡單了?
應該指出,頭指向列表中的第一個儲物櫃,下一個是指向下一個儲物櫃的指針,因爲我相信你會猜到。
它什麼時候失敗,什麼時候失敗? –
它會建立並運行良好。這似乎是一個合乎邏輯的問題。比如說,對於所有VIP的多元素列表,它不會正確打印,只是打印其中的一個。 –